From 2261ec7cb929b99f8f1d76385cca1b3b4692d7ab Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Tue, 29 Oct 2019 17:17:55 +0100 Subject: [PATCH] WIP: Spring-Upgrade auf 2.2.0 --- ...FacebookErrorsOAuth2AutoConfiguration.java | 71 ----------- ...=> GraphApiErrorResponseErrorHandler.java} | 14 ++- .../errors/OAuth2GraphApiErrorHandler.java | 48 -------- ...bookErrorsOAuth2AutoConfigurationTest.java | 116 ------------------ .../errors/GraphApiErrorHandlerTest.java | 2 +- .../errors/MockClientHttpRequestFactory.java | 6 + 6 files changed, 16 insertions(+), 241 deletions(-) delete mode 100644 src/main/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfiguration.java rename src/main/java/de/juplo/facebook/errors/{GraphApiErrorHandler.java => GraphApiErrorResponseErrorHandler.java} (88%) delete mode 100644 src/main/java/de/juplo/facebook/errors/OAuth2GraphApiErrorHandler.java delete mode 100644 src/test/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfigurationTest.java diff --git a/src/main/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfiguration.java b/src/main/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfiguration.java deleted file mode 100644 index 82b5b15..0000000 --- a/src/main/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfiguration.java +++ /dev/null @@ -1,71 +0,0 @@ -package de.juplo.facebook.errors; - - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration; -import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -/** - * Automatic configuration for Srping-Security-OAuth2 - * - * @author Kai Moritz - */ -@Configuration -@AutoConfigureAfter({ - WebMvcAutoConfiguration.class, - OAuth2ClientAutoConfiguration.class - }) -public class FacebookErrorsOAuth2AutoConfiguration -{ - private static final Logger LOG = - LoggerFactory.getLogger(FacebookErrorsOAuth2AutoConfiguration.class); - - @Bean - static public BeanPostProcessor errorHandlerInjectorOAuth2() - { - LOG.info("Configuring OAuth2GraphApiErrorHandler for handling error-messages"); - - return new BeanPostProcessor() - { - @Override - public Object postProcessBeforeInitialization( - Object bean, - String beanName - ) - throws - BeansException - { - if (bean instanceof OAuth2RestTemplate) - { - LOG.debug("Injecting OAuth2GraphApiErrorHandler in {}", bean); - OAuth2RestTemplate template = (OAuth2RestTemplate) bean; - template.setErrorHandler( - new OAuth2GraphApiErrorHandler( - (OAuth2ErrorHandler)template.getErrorHandler() - ) - ); - } - - return bean; - } - - @Override - public Object postProcessAfterInitialization( - Object bean, - String beanName - ) - throws - BeansException - { - return bean; - } - }; - } -} diff --git a/src/main/java/de/juplo/facebook/errors/GraphApiErrorHandler.java b/src/main/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandler.java similarity index 88% rename from src/main/java/de/juplo/facebook/errors/GraphApiErrorHandler.java rename to src/main/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandler.java index 265f145..ae6e2d5 100644 --- a/src/main/java/de/juplo/facebook/errors/GraphApiErrorHandler.java +++ b/src/main/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandler.java @@ -11,6 +11,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.client.ClientHttpResponse; import org.springframework.util.FileCopyUtils; +import org.springframework.web.client.DefaultResponseErrorHandler; import org.springframework.web.client.ResponseErrorHandler; @@ -32,17 +33,20 @@ import org.springframework.web.client.ResponseErrorHandler; * @see Inofficial Wiki For Facebook-Developers * @author Kai Moritz */ -public class GraphApiErrorHandler implements ResponseErrorHandler +public class GraphApiErrorResponseErrorHandler implements ResponseErrorHandler { private final static Logger LOG = - LoggerFactory.getLogger(GraphApiErrorHandler.class); + LoggerFactory.getLogger(GraphApiErrorResponseErrorHandler.class); private final ResponseErrorHandler parent; - public GraphApiErrorHandler(ResponseErrorHandler errorHandler) + public GraphApiErrorResponseErrorHandler(ResponseErrorHandler errorHandler) { - this.parent = errorHandler; + this.parent = + errorHandler == null + ? new DefaultResponseErrorHandler() + : errorHandler; } @@ -57,7 +61,7 @@ public class GraphApiErrorHandler implements ResponseErrorHandler @Override public void handleError(final ClientHttpResponse response) throws IOException { - GraphApiErrorHandler.handleError(parent, response); + GraphApiErrorResponseErrorHandler.handleError(parent, response); } public static void handleError( diff --git a/src/main/java/de/juplo/facebook/errors/OAuth2GraphApiErrorHandler.java b/src/main/java/de/juplo/facebook/errors/OAuth2GraphApiErrorHandler.java deleted file mode 100644 index e83e47f..0000000 --- a/src/main/java/de/juplo/facebook/errors/OAuth2GraphApiErrorHandler.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.juplo.facebook.errors; - - -import java.io.IOException; -import java.util.List; -import org.springframework.http.HttpStatus; -import org.springframework.http.client.ClientHttpResponse; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.security.oauth2.client.http.OAuth2ErrorResponseErrorHandler; - - - -/** - * - * @author Kai Moritz - */ -public class OAuth2GraphApiErrorHandler extends OAuth2ErrorResponseErrorHandler -{ - private final OAuth2ErrorResponseErrorHandler parent; - - - public OAuth2GraphApiErrorHandler(OAuth2ErrorResponseErrorHandler handler) - { - super(null); - parent = handler; - } - - - @Override - public boolean hasError(ClientHttpResponse response) throws IOException - { - return - HttpStatus.Series.CLIENT_ERROR.equals(response.getStatusCode().series()) - || parent.hasError(response); - } - - @Override - public void handleError(ClientHttpResponse response) throws IOException - { - GraphApiErrorHandler.handleError(parent, response); - } - - @Override - public void setMessageConverters(List> converters) - { - parent.setMessageConverters(converters); - } -} diff --git a/src/test/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfigurationTest.java b/src/test/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfigurationTest.java deleted file mode 100644 index 7c1e156..0000000 --- a/src/test/java/de/juplo/facebook/errors/FacebookErrorsOAuth2AutoConfigurationTest.java +++ /dev/null @@ -1,116 +0,0 @@ -package de.juplo.facebook.errors; - - -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import org.junit.After; -import org.junit.Test; -import org.springframework.context.annotation.Configuration; -import static org.junit.Assert.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer; -import org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.mock.env.MockEnvironment; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; - - - -public class FacebookErrorsOAuth2AutoConfigurationTest -{ - private final Logger LOG = - LoggerFactory.getLogger(FacebookErrorsOAuth2AutoConfigurationTest.class); - - - private ConfigurableApplicationContext context; - - - @After - public void tearDown() - { - if (this.context != null) - this.context.close(); - } - - - @Test - public void defaultNonWebConfiguration() - { - LOG.info("<-- Start Of New Test-Case!"); - Map properties = new HashMap<>(); - properties.put("security.oauth2.client.client-id", "CLIENT_ID"); - context = loadNonWebApplicationContext(EmptyConfiguration.class, properties); - OAuth2RestTemplate template = context.getBean(OAuth2RestTemplate.class); - assertEquals(OAuth2GraphApiErrorHandler.class, template.getErrorHandler().getClass()); - } - - @Test - public void defaultWebConfiguration() - { - LOG.info("<-- Start Of New Test-Case!"); - Map properties = new HashMap<>(); - properties.put("security.oauth2.client.client-id", "CLIENT_ID"); - context = loadWebApplicationContext(EmptyConfiguration.class, properties); - OAuth2RestTemplate template = context.getBean(OAuth2RestTemplate.class); - assertEquals(OAuth2GraphApiErrorHandler.class, template.getErrorHandler().getClass()); - } - - - @Configuration - static class EmptyConfiguration - { - } - - - private ConfigurableApplicationContext loadNonWebApplicationContext( - Class config, - Map properties - ) - { - AnnotationConfigApplicationContext ctx = - new AnnotationConfigApplicationContext(); - if (properties != null) - { - MockEnvironment env = new MockEnvironment(); - for (Entry entry : properties.entrySet()) - env.withProperty(entry.getKey(), entry.getValue()); - ctx.setEnvironment(env); - } - ctx.register(FacebookErrorsOAuth2AutoConfiguration.class); - ctx.register(OAuth2AutoConfiguration.class); - ctx.register(config); - AutoConfigurationReportLoggingInitializer report = - new AutoConfigurationReportLoggingInitializer(); - report.initialize(ctx); - ctx.refresh(); - return ctx; - } - - private ConfigurableApplicationContext loadWebApplicationContext( - Class config, - Map properties - ) - { - AnnotationConfigWebApplicationContext ctx = - new AnnotationConfigWebApplicationContext(); - if (properties != null) - { - MockEnvironment env = new MockEnvironment(); - for (Entry entry : properties.entrySet()) - env.withProperty(entry.getKey(), entry.getValue()); - ctx.setEnvironment(env); - } - ctx.register(FacebookErrorsOAuth2AutoConfiguration.class); - ctx.register(OAuth2AutoConfiguration.class); - ctx.register(config); - AutoConfigurationReportLoggingInitializer report = - new AutoConfigurationReportLoggingInitializer(); - report.initialize(ctx); - ctx.refresh(); - return ctx; - } -} diff --git a/src/test/java/de/juplo/facebook/errors/GraphApiErrorHandlerTest.java b/src/test/java/de/juplo/facebook/errors/GraphApiErrorHandlerTest.java index dde664e..2e03df7 100644 --- a/src/test/java/de/juplo/facebook/errors/GraphApiErrorHandlerTest.java +++ b/src/test/java/de/juplo/facebook/errors/GraphApiErrorHandlerTest.java @@ -753,7 +753,7 @@ public class GraphApiErrorHandlerTest clientTemplate = new RestTemplate(); clientTemplate.setRequestFactory(requestFactory); clientTemplate.setErrorHandler( - new GraphApiErrorHandler(clientTemplate.getErrorHandler()) + new GraphApiErrorResponseErrorHandler(clientTemplate.getErrorHandler()) ); } diff --git a/src/test/java/de/juplo/facebook/errors/MockClientHttpRequestFactory.java b/src/test/java/de/juplo/facebook/errors/MockClientHttpRequestFactory.java index d5b24c3..0b03cd0 100644 --- a/src/test/java/de/juplo/facebook/errors/MockClientHttpRequestFactory.java +++ b/src/test/java/de/juplo/facebook/errors/MockClientHttpRequestFactory.java @@ -85,6 +85,12 @@ public class MockClientHttpRequestFactory implements ClientHttpRequestFactory return method; } + @Override + public String getMethodValue() + { + return method.name(); + } + @Override public URI getURI() { -- 2.20.1