X-Git-Url: https://juplo.de/gitweb/?p=facebook-utils;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Ffacebook%2FFacebookUtils.java;h=1a76601a28cfc76a8c32f5bb04f4b8194b4bac85;hp=bf0a5dfaf24a6c3aa760034a4d5c00a84d6742d3;hb=aa08a5cc575e5228c267686ba668cdbb3f361a90;hpb=504b7c003be150f78b45d308bc29ba5242dbf568 diff --git a/src/main/java/de/juplo/facebook/FacebookUtils.java b/src/main/java/de/juplo/facebook/FacebookUtils.java index bf0a5df..1a76601 100644 --- a/src/main/java/de/juplo/facebook/FacebookUtils.java +++ b/src/main/java/de/juplo/facebook/FacebookUtils.java @@ -1,11 +1,12 @@ package de.juplo.facebook; +import de.juplo.facebook.token.SignedRequestAwareAuthorizationCodeAccessTokenProvider; +import de.juplo.facebook.exceptions.GraphApiErrorHandler; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import javax.annotation.PostConstruct; -import org.codehaus.jackson.map.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; @@ -13,15 +14,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter; import org.springframework.security.oauth2.client.OAuth2RestTemplate; +import org.springframework.security.oauth2.client.http.OAuth2ErrorHandler; import org.springframework.security.oauth2.client.token.AccessTokenProvider; import org.springframework.security.oauth2.client.token.AccessTokenProviderChain; import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider; import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitAccessTokenProvider; import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider; -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; @@ -38,41 +37,11 @@ public class FacebookUtils @Autowired(required=false) private List accessTokenProviderChain; - /** - * Needed, to extract Jackson-ObjectMapper. - * Defined by - */ - @Autowired - private RequestMappingHandlerAdapter requestMappingHandlerAdapter; - - private ObjectMapper objectMapper; @PostConstruct public void init() { - for (HttpMessageConverter messageConverter : requestMappingHandlerAdapter.getMessageConverters()) - { - if (messageConverter instanceof MappingJacksonHttpMessageConverter) - { - MappingJacksonHttpMessageConverter m = - (MappingJacksonHttpMessageConverter)messageConverter; - objectMapper = m.getObjectMapper(); - log.info( - "found ObjectMapper {} ({})", - objectMapper, - objectMapper.getClass().getCanonicalName() - ); - break; - } - } - if (objectMapper == null) - { - throw new RuntimeException( - "Unable to find MappingJAcksonHttpMessageConverter!" - ); - } - if (accessTokenProviderChain == null) { log.info("no AccessTokenProviderChain configured, creating default-chain"); @@ -109,9 +78,14 @@ public class FacebookUtils SignedRequestAwareAuthorizationCodeAccessTokenProvider provider = new SignedRequestAwareAuthorizationCodeAccessTokenProvider(); provider.setSecret(clientSecret); - provider.setObjectMapper(objectMapper); chain.add(provider); template.setAccessTokenProvider(new AccessTokenProviderChain(chain)); + log.info("injecting GraphApiErrorHandler"); + template.setErrorHandler( + new GraphApiErrorHandler( + (OAuth2ErrorHandler)template.getErrorHandler() + ) + ); } return bean;