X-Git-Url: https://juplo.de/gitweb/?p=website;a=blobdiff_plain;f=dist%2Ffacebook-utils-2.5.0%2Fxref%2Fde%2Fjuplo%2Ffacebook%2FFacebookUtils.html;fp=dist%2Ffacebook-utils-2.5.0%2Fxref%2Fde%2Fjuplo%2Ffacebook%2FFacebookUtils.html;h=d74a8692157891b37ef0ed5b029f911a93fa99a2;hp=0000000000000000000000000000000000000000;hb=a53595184bd6e57bdc45292cc92c393c4e2dfe6e;hpb=c48c9ee0e9faa89a4c0a5323b367b9f5a6abe602 diff --git a/dist/facebook-utils-2.5.0/xref/de/juplo/facebook/FacebookUtils.html b/dist/facebook-utils-2.5.0/xref/de/juplo/facebook/FacebookUtils.html new file mode 100644 index 00000000..d74a8692 --- /dev/null +++ b/dist/facebook-utils-2.5.0/xref/de/juplo/facebook/FacebookUtils.html @@ -0,0 +1,119 @@ + + + +FacebookUtils xref + + + +
View Javadoc
+1   package de.juplo.facebook;
+2   
+3   
+4   import de.juplo.facebook.token.SignedRequestAwareAuthorizationCodeAccessTokenProvider;
+5   import de.juplo.facebook.client.GraphApiErrorHandler;
+6   import java.util.Arrays;
+7   import java.util.LinkedList;
+8   import java.util.List;
+9   import javax.annotation.PostConstruct;
+10  import org.slf4j.Logger;
+11  import org.slf4j.LoggerFactory;
+12  import org.springframework.beans.BeansException;
+13  import org.springframework.beans.factory.annotation.Autowired;
+14  import org.springframework.beans.factory.config.BeanPostProcessor;
+15  import org.springframework.context.annotation.Bean;
+16  import org.springframework.context.annotation.Configuration;
+17  import org.springframework.security.oauth2.client.OAuth2RestTemplate;
+18  import org.springframework.security.oauth2.client.http.OAuth2ErrorHandler;
+19  import org.springframework.security.oauth2.client.token.AccessTokenProvider;
+20  import org.springframework.security.oauth2.client.token.AccessTokenProviderChain;
+21  import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider;
+22  import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitAccessTokenProvider;
+23  import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider;
+24  
+25  
+26  
+27  /**
+28   * This class injects the facebook-utils into the spring-oauth2-configuration
+29   *
+30   * @author kai
+31   */
+32  @Configuration
+33  public class FacebookUtils
+34  {
+35    private final Logger log = LoggerFactory.getLogger(FacebookUtils.class);
+36  
+37  
+38    @Autowired(required=false)
+39    private List<AccessTokenProvider> accessTokenProviderChain;
+40  
+41  
+42    @PostConstruct
+43    public void init()
+44    {
+45      if (accessTokenProviderChain == null)
+46      {
+47        log.info("no AccessTokenProviderChain configured, creating default-chain");
+48        accessTokenProviderChain =
+49            Arrays.<AccessTokenProvider> asList(
+50                new ImplicitAccessTokenProvider(),
+51                new ResourceOwnerPasswordAccessTokenProvider(),
+52                new ClientCredentialsAccessTokenProvider()
+53                );
+54      }
+55    }
+56  
+57  
+58    @Bean
+59    public BeanPostProcessor getBeanPostProcessor(final String clientSecret)
+60    {
+61      log.debug("createing new instance of BeanPostProcessor");
+62      return new BeanPostProcessor() {
+63  
+64        @Override
+65        public Object postProcessBeforeInitialization(
+66            Object bean,
+67            String beanName
+68            )
+69            throws
+70              BeansException
+71        {
+72          if (bean instanceof OAuth2RestTemplate)
+73          {
+74            log.info("injecting signed_request-aware AccessTokenProviderChain");
+75            OAuth2RestTemplate template = (OAuth2RestTemplate)bean;
+76            List<AccessTokenProvider> chain =
+77                new LinkedList<>(accessTokenProviderChain);
+78            SignedRequestAwareAuthorizationCodeAccessTokenProvider provider =
+79                new SignedRequestAwareAuthorizationCodeAccessTokenProvider();
+80            provider.setSecret(clientSecret);
+81            chain.add(provider);
+82            template.setAccessTokenProvider(new AccessTokenProviderChain(chain));
+83            log.info("injecting GraphApiErrorHandler");
+84            template.setErrorHandler(
+85                new GraphApiErrorHandler(
+86                    (OAuth2ErrorHandler)template.getErrorHandler()
+87                    )
+88                );
+89          }
+90  
+91          return bean;
+92        }
+93  
+94        @Override
+95        public Object postProcessAfterInitialization(
+96            Object bean,
+97            String beanName
+98            )
+99            throws
+100             BeansException
+101       {
+102         return bean;
+103       }
+104     };
+105   }
+106 }
+
+
+ + +