From 7550907e033deb2bfd101e1138249d8eb0d019f5 Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Wed, 29 Jan 2020 12:03:00 -0700 Subject: [PATCH] Polish OAuth2AccessTokenResponse converters Since these converters no longer have a direct reference to the HTTP stack, it would be better to move them into another package. Also, now that the converters are public, we should follow the prevailing converter naming convention, which is to call it STConverter for an implementation of Converter. --- ...apOAuth2AccessTokenResponseConverter.java} | 15 +++++++----- ...Auth2AccessTokenResponseMapConverter.java} | 14 +++++------ ...cessTokenResponseHttpMessageConverter.java | 14 ++++++----- ...uth2AccessTokenResponseConverterTest.java} | 24 +++++++++---------- ...2AccessTokenResponseMapConverterTest.java} | 22 ++++++++--------- 5 files changed, 45 insertions(+), 44 deletions(-) rename oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/{http/converter/OAuth2AccessTokenResponseConverter.java => endpoint/MapOAuth2AccessTokenResponseConverter.java} (88%) rename oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/{http/converter/OAuth2AccessTokenResponseParametersConverter.java => endpoint/OAuth2AccessTokenResponseMapConverter.java} (86%) rename oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/{http/converter/OAuth2AccessTokenResponseConverterTest.java => endpoint/MapOAuth2AccessTokenResponseConverterTest.java} (92%) rename oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/{http/converter/OAuth2AccessTokenResponseParametersConverterTest.java => endpoint/OAuth2AccessTokenResponseMapConverterTest.java} (85%) diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseConverter.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/MapOAuth2AccessTokenResponseConverter.java similarity index 88% rename from oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseConverter.java rename to oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/MapOAuth2AccessTokenResponseConverter.java index 6d3eddc737..3cc3aa0ede 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseConverter.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/MapOAuth2AccessTokenResponseConverter.java @@ -13,16 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.security.oauth2.core.http.converter; +package org.springframework.security.oauth2.core.endpoint; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; import org.springframework.core.convert.converter.Converter; import org.springframework.security.oauth2.core.OAuth2AccessToken; -import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse; -import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames; import org.springframework.util.StringUtils; -import java.util.*; - /** * A {@link Converter} that converts the provided * OAuth 2.0 Access Token Response parameters to an {@link OAuth2AccessTokenResponse}. @@ -31,7 +34,7 @@ import java.util.*; * @author Nikita Konev * @since 5.3 */ -public final class OAuth2AccessTokenResponseConverter implements Converter, OAuth2AccessTokenResponse> { +public final class MapOAuth2AccessTokenResponseConverter implements Converter, OAuth2AccessTokenResponse> { private static final Set TOKEN_RESPONSE_PARAMETER_NAMES = new HashSet<>(Arrays.asList( OAuth2ParameterNames.ACCESS_TOKEN, OAuth2ParameterNames.EXPIRES_IN, diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseParametersConverter.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseMapConverter.java similarity index 86% rename from oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseParametersConverter.java rename to oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseMapConverter.java index ce8ccad293..cc023ee4ce 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseParametersConverter.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseMapConverter.java @@ -13,19 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.security.oauth2.core.http.converter; - -import org.springframework.core.convert.converter.Converter; -import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse; -import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; +package org.springframework.security.oauth2.core.endpoint; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.HashMap; import java.util.Map; +import org.springframework.core.convert.converter.Converter; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + /** * A {@link Converter} that converts the provided {@link OAuth2AccessTokenResponse} * to a {@code Map} representation of the OAuth 2.0 Access Token Response parameters. @@ -34,7 +32,7 @@ import java.util.Map; * @author Nikita Konev * @since 5.3 */ -public final class OAuth2AccessTokenResponseParametersConverter implements Converter> { +public final class OAuth2AccessTokenResponseMapConverter implements Converter> { @Override public Map convert(OAuth2AccessTokenResponse tokenResponse) { diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseHttpMessageConverter.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseHttpMessageConverter.java index ec70ff28e8..36cf4a168f 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseHttpMessageConverter.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseHttpMessageConverter.java @@ -15,6 +15,10 @@ */ package org.springframework.security.oauth2.core.http.converter; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.util.Map; + import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.convert.converter.Converter; import org.springframework.http.HttpInputMessage; @@ -25,13 +29,11 @@ import org.springframework.http.converter.GenericHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotWritableException; +import org.springframework.security.oauth2.core.endpoint.MapOAuth2AccessTokenResponseConverter; import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse; +import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponseMapConverter; import org.springframework.util.Assert; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.util.Map; - /** * A {@link HttpMessageConverter} for an {@link OAuth2AccessTokenResponse OAuth 2.0 Access Token Response}. * @@ -49,10 +51,10 @@ public class OAuth2AccessTokenResponseHttpMessageConverter extends AbstractHttpM private GenericHttpMessageConverter jsonMessageConverter = HttpMessageConverters.getJsonMessageConverter(); protected Converter, OAuth2AccessTokenResponse> tokenResponseConverter = - new OAuth2AccessTokenResponseConverter(); + new MapOAuth2AccessTokenResponseConverter(); protected Converter> tokenResponseParametersConverter = - new OAuth2AccessTokenResponseParametersConverter(); + new OAuth2AccessTokenResponseMapConverter(); public OAuth2AccessTokenResponseHttpMessageConverter() { super(DEFAULT_CHARSET, MediaType.APPLICATION_JSON, new MediaType("application", "*+json")); diff --git a/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseConverterTest.java b/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/MapOAuth2AccessTokenResponseConverterTest.java similarity index 92% rename from oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseConverterTest.java rename to oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/MapOAuth2AccessTokenResponseConverterTest.java index fd55d8e3ed..56dd03f83f 100644 --- a/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseConverterTest.java +++ b/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/MapOAuth2AccessTokenResponseConverterTest.java @@ -13,32 +13,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.security.oauth2.core.http.converter; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.springframework.security.oauth2.core.OAuth2AccessToken; -import org.springframework.security.oauth2.core.OAuth2RefreshToken; -import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse; +package org.springframework.security.oauth2.core.endpoint; import java.time.Duration; import java.util.HashMap; import java.util.Map; import java.util.Set; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import org.springframework.security.oauth2.core.OAuth2AccessToken; +import org.springframework.security.oauth2.core.OAuth2RefreshToken; + /** - * Tests for {@link OAuth2AccessTokenResponseConverter}. + * Tests for {@link MapOAuth2AccessTokenResponseConverter}. * * @author Nikita Konev */ -public class OAuth2AccessTokenResponseConverterTest { +public class MapOAuth2AccessTokenResponseConverterTest { - private OAuth2AccessTokenResponseConverter messageConverter; + private MapOAuth2AccessTokenResponseConverter messageConverter; @Before public void setup() { - this.messageConverter = new OAuth2AccessTokenResponseConverter(); + this.messageConverter = new MapOAuth2AccessTokenResponseConverter(); } diff --git a/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseParametersConverterTest.java b/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseMapConverterTest.java similarity index 85% rename from oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseParametersConverterTest.java rename to oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseMapConverterTest.java index 1542efb172..cdeb3dd73d 100644 --- a/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/http/converter/OAuth2AccessTokenResponseParametersConverterTest.java +++ b/oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseMapConverterTest.java @@ -13,33 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.security.oauth2.core.http.converter; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.springframework.security.oauth2.core.OAuth2AccessToken; -import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse; +package org.springframework.security.oauth2.core.endpoint; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -import static org.junit.Assert.*; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import org.springframework.security.oauth2.core.OAuth2AccessToken; /** - * Tests for {@link OAuth2AccessTokenResponseParametersConverter}. + * Tests for {@link OAuth2AccessTokenResponseMapConverter}. * * @author Nikita Konev */ -public class OAuth2AccessTokenResponseParametersConverterTest { +public class OAuth2AccessTokenResponseMapConverterTest { - private OAuth2AccessTokenResponseParametersConverter messageConverter; + private OAuth2AccessTokenResponseMapConverter messageConverter; @Before public void setup() { - this.messageConverter = new OAuth2AccessTokenResponseParametersConverter(); + this.messageConverter = new OAuth2AccessTokenResponseMapConverter(); }