From 7cc650920081521ca7b6870efec816f7a20e45d9 Mon Sep 17 00:00:00 2001 From: Joe Grandja Date: Wed, 15 Jul 2020 11:25:59 -0400 Subject: [PATCH] Polish gh-8669 --- .../OAuth2ClientBeanDefinitionParser.java | 11 ++++------ ...OAuth2ClientBeanDefinitionParserUtils.java | 20 ++++++++----------- .../http/OAuth2LoginBeanDefinitionParser.java | 11 ++++------ 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParser.java index 71cd14661c..ccc3219e46 100644 --- a/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParser.java @@ -25,11 +25,11 @@ import org.springframework.beans.factory.xml.ParserContext; import org.springframework.security.oauth2.client.authentication.OAuth2AuthorizationCodeAuthenticationProvider; import org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter; import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter; +import org.springframework.security.oauth2.client.web.OAuth2AuthorizedClientRepository; import org.springframework.util.StringUtils; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; -import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.createAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.createDefaultAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientService; @@ -64,12 +64,9 @@ final class OAuth2ClientBeanDefinitionParser implements BeanDefinitionParser { BeanMetadataElement authorizedClientRepository = getAuthorizedClientRepository(element); if (authorizedClientRepository == null) { BeanMetadataElement authorizedClientService = getAuthorizedClientService(element); - if (authorizedClientService == null) { - this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository(clientRegistrationRepository); - authorizedClientRepository = this.defaultAuthorizedClientRepository; - } else { - authorizedClientRepository = createAuthorizedClientRepository(authorizedClientService); - } + this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository( + clientRegistrationRepository, authorizedClientService); + authorizedClientRepository = new RuntimeBeanReference(OAuth2AuthorizedClientRepository.class); } BeanMetadataElement authorizationRequestRepository = getAuthorizationRequestRepository( authorizationCodeGrantElt); diff --git a/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserUtils.java b/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserUtils.java index 4ff56b1147..c0af4d7d44 100644 --- a/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserUtils.java +++ b/config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserUtils.java @@ -59,18 +59,14 @@ final class OAuth2ClientBeanDefinitionParserUtils { return null; } - static BeanMetadataElement createAuthorizedClientRepository(BeanMetadataElement authorizedClientService) { - return BeanDefinitionBuilder.rootBeanDefinition( - "org.springframework.security.oauth2.client.web.AuthenticatedPrincipalOAuth2AuthorizedClientRepository") - .addConstructorArgValue(authorizedClientService) - .getBeanDefinition(); - } - - static BeanDefinition createDefaultAuthorizedClientRepository(BeanMetadataElement clientRegistrationRepository) { - BeanDefinition authorizedClientService = BeanDefinitionBuilder.rootBeanDefinition( - "org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService") - .addConstructorArgValue(clientRegistrationRepository) - .getBeanDefinition(); + static BeanDefinition createDefaultAuthorizedClientRepository( + BeanMetadataElement clientRegistrationRepository, BeanMetadataElement authorizedClientService) { + if (authorizedClientService == null) { + authorizedClientService = BeanDefinitionBuilder.rootBeanDefinition( + "org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService") + .addConstructorArgValue(clientRegistrationRepository) + .getBeanDefinition(); + } return BeanDefinitionBuilder.rootBeanDefinition( "org.springframework.security.oauth2.client.web.AuthenticatedPrincipalOAuth2AuthorizedClientRepository") .addConstructorArgValue(authorizedClientService) diff --git a/config/src/main/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParser.java index b5fcdda680..68ac6f2041 100644 --- a/config/src/main/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParser.java @@ -37,6 +37,7 @@ import org.springframework.security.oauth2.client.authentication.OAuth2LoginAuth import org.springframework.security.oauth2.client.registration.ClientRegistration; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter; +import org.springframework.security.oauth2.client.web.OAuth2AuthorizedClientRepository; import org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter; import org.springframework.security.oauth2.core.OAuth2AuthenticationException; import org.springframework.security.oauth2.core.OAuth2Error; @@ -66,7 +67,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.createAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.createDefaultAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientService; @@ -136,12 +136,9 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser { BeanMetadataElement authorizedClientRepository = getAuthorizedClientRepository(element); if (authorizedClientRepository == null) { BeanMetadataElement authorizedClientService = getAuthorizedClientService(element); - if (authorizedClientService == null) { - this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository(clientRegistrationRepository); - authorizedClientRepository = this.defaultAuthorizedClientRepository; - } else { - authorizedClientRepository = createAuthorizedClientRepository(authorizedClientService); - } + this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository( + clientRegistrationRepository, authorizedClientService); + authorizedClientRepository = new RuntimeBeanReference(OAuth2AuthorizedClientRepository.class); } BeanMetadataElement accessTokenResponseClient = getAccessTokenResponseClient(element); BeanMetadataElement oauth2UserService = getOAuth2UserService(element);