From 332d1cc3182032d6df27f757d7128f0200050e57 Mon Sep 17 00:00:00 2001 From: Joe Grandja Date: Tue, 30 Nov 2021 05:18:51 -0500 Subject: [PATCH] Polish gh-492 --- .../OAuth2AuthenticationContext.java | 37 ++++--------------- ...tionCodeRequestAuthenticationProvider.java | 8 ++-- .../OidcUserInfoAuthenticationProvider.java | 10 ++--- 3 files changed, 17 insertions(+), 38 deletions(-) diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/authentication/OAuth2AuthenticationContext.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/authentication/OAuth2AuthenticationContext.java index 1a7c39ea..89a1ff9b 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/authentication/OAuth2AuthenticationContext.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/authentication/OAuth2AuthenticationContext.java @@ -41,9 +41,7 @@ public class OAuth2AuthenticationContext implements Context { * * @param authentication the {@code Authentication} * @param context a {@code Map} of additional context information - * @deprecated Use {@link #with(Authentication)} instead */ - @Deprecated public OAuth2AuthenticationContext(Authentication authentication, @Nullable Map context) { Assert.notNull(authentication, "authentication cannot be null"); Map ctx = new HashMap<>(); @@ -54,7 +52,13 @@ public class OAuth2AuthenticationContext implements Context { this.context = Collections.unmodifiableMap(ctx); } - protected OAuth2AuthenticationContext(Map context) { + /** + * Constructs an {@code OAuth2AuthenticationContext} using the provided parameters. + * + * @param context a {@code Map} of context information, must contain the {@code Authentication} + * @since 0.2.1 + */ + public OAuth2AuthenticationContext(Map context) { Assert.notEmpty(context, "context cannot be empty"); Assert.notNull(context.get(Authentication.class), "authentication cannot be null"); this.context = Collections.unmodifiableMap(new HashMap<>(context)); @@ -84,37 +88,12 @@ public class OAuth2AuthenticationContext implements Context { return this.context.containsKey(key); } - /** - * Constructs a new {@link Builder} with the provided {@link Authentication}. - * - * @param authentication the {@link Authentication} - * @return the {@link Builder} - */ - public static Builder with(Authentication authentication) { - return new Builder(authentication); - } - - /** - * A builder for {@link OAuth2AuthenticationContext}. - */ - public static final class Builder extends AbstractBuilder { - - private Builder(Authentication authentication) { - super(authentication); - } - - @Override - public OAuth2AuthenticationContext build() { - return new OAuth2AuthenticationContext(getContext()); - } - - } - /** * A builder for subclasses of {@link OAuth2AuthenticationContext}. * * @param the type of the authentication context * @param the type of the builder + * @since 0.2.1 */ protected static abstract class AbstractBuilder> { private final Map context = new HashMap<>(); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java index c6cc64eb..9b37280c 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java @@ -185,10 +185,10 @@ public final class OAuth2AuthorizationCodeRequestAuthenticationProvider implemen authorizationCodeRequestAuthentication, null); } - OAuth2AuthenticationContext authenticationContext = - OAuth2AuthenticationContext.with(authorizationCodeRequestAuthentication) - .put(RegisteredClient.class, registeredClient) - .build(); + Map context = new HashMap<>(); + context.put(RegisteredClient.class, registeredClient); + OAuth2AuthenticationContext authenticationContext = new OAuth2AuthenticationContext( + authorizationCodeRequestAuthentication, context); OAuth2AuthenticationValidator redirectUriValidator = resolveAuthenticationValidator(OAuth2ParameterNames.REDIRECT_URI); redirectUriValidator.validate(authenticationContext); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcUserInfoAuthenticationProvider.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcUserInfoAuthenticationProvider.java index d59b18fe..e47b6a78 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcUserInfoAuthenticationProvider.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcUserInfoAuthenticationProvider.java @@ -98,11 +98,11 @@ public final class OidcUserInfoAuthenticationProvider implements AuthenticationP throw new OAuth2AuthenticationException(OAuth2ErrorCodes.INVALID_TOKEN); } - OAuth2AuthenticationContext authenticationContext = - OAuth2AuthenticationContext.with(userInfoAuthentication) - .put(OAuth2Token.class, accessTokenAuthentication.getToken()) - .put(OAuth2Authorization.class, authorization) - .build(); + Map context = new HashMap<>(); + context.put(OAuth2Token.class, accessTokenAuthentication.getToken()); + context.put(OAuth2Authorization.class, authorization); + OAuth2AuthenticationContext authenticationContext = new OAuth2AuthenticationContext( + userInfoAuthentication, context); OidcUserInfo userInfo = this.userInfoMapper.apply(authenticationContext);