Explorar o código

Polish gh-8669

Joe Grandja %!s(int64=5) %!d(string=hai) anos
pai
achega
7cc6509200

+ 4 - 7
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);

+ 8 - 12
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)

+ 4 - 7
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);