Polish gh-8669

This commit is contained in:
Joe Grandja 2020-07-15 11:25:59 -04:00
parent 48aa5cceda
commit 7cc6509200
3 changed files with 16 additions and 26 deletions

View File

@ -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.authentication.OAuth2AuthorizationCodeAuthenticationProvider;
import org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter; import org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter;
import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter; 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.StringUtils;
import org.springframework.util.xml.DomUtils; import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element; 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.createDefaultAuthorizedClientRepository;
import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientRepository;
import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientService; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientService;
@ -64,12 +64,9 @@ final class OAuth2ClientBeanDefinitionParser implements BeanDefinitionParser {
BeanMetadataElement authorizedClientRepository = getAuthorizedClientRepository(element); BeanMetadataElement authorizedClientRepository = getAuthorizedClientRepository(element);
if (authorizedClientRepository == null) { if (authorizedClientRepository == null) {
BeanMetadataElement authorizedClientService = getAuthorizedClientService(element); BeanMetadataElement authorizedClientService = getAuthorizedClientService(element);
if (authorizedClientService == null) { this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository(
this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository(clientRegistrationRepository); clientRegistrationRepository, authorizedClientService);
authorizedClientRepository = this.defaultAuthorizedClientRepository; authorizedClientRepository = new RuntimeBeanReference(OAuth2AuthorizedClientRepository.class);
} else {
authorizedClientRepository = createAuthorizedClientRepository(authorizedClientService);
}
} }
BeanMetadataElement authorizationRequestRepository = getAuthorizationRequestRepository( BeanMetadataElement authorizationRequestRepository = getAuthorizationRequestRepository(
authorizationCodeGrantElt); authorizationCodeGrantElt);

View File

@ -59,18 +59,14 @@ final class OAuth2ClientBeanDefinitionParserUtils {
return null; return null;
} }
static BeanMetadataElement createAuthorizedClientRepository(BeanMetadataElement authorizedClientService) { static BeanDefinition createDefaultAuthorizedClientRepository(
return BeanDefinitionBuilder.rootBeanDefinition( BeanMetadataElement clientRegistrationRepository, BeanMetadataElement authorizedClientService) {
"org.springframework.security.oauth2.client.web.AuthenticatedPrincipalOAuth2AuthorizedClientRepository") if (authorizedClientService == null) {
.addConstructorArgValue(authorizedClientService) authorizedClientService = BeanDefinitionBuilder.rootBeanDefinition(
.getBeanDefinition(); "org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService")
} .addConstructorArgValue(clientRegistrationRepository)
.getBeanDefinition();
static BeanDefinition createDefaultAuthorizedClientRepository(BeanMetadataElement clientRegistrationRepository) { }
BeanDefinition authorizedClientService = BeanDefinitionBuilder.rootBeanDefinition(
"org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService")
.addConstructorArgValue(clientRegistrationRepository)
.getBeanDefinition();
return BeanDefinitionBuilder.rootBeanDefinition( return BeanDefinitionBuilder.rootBeanDefinition(
"org.springframework.security.oauth2.client.web.AuthenticatedPrincipalOAuth2AuthorizedClientRepository") "org.springframework.security.oauth2.client.web.AuthenticatedPrincipalOAuth2AuthorizedClientRepository")
.addConstructorArgValue(authorizedClientService) .addConstructorArgValue(authorizedClientService)

View File

@ -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.ClientRegistration;
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter; 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.client.web.OAuth2LoginAuthenticationFilter;
import org.springframework.security.oauth2.core.OAuth2AuthenticationException; import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
import org.springframework.security.oauth2.core.OAuth2Error; import org.springframework.security.oauth2.core.OAuth2Error;
@ -66,7 +67,6 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; 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.createDefaultAuthorizedClientRepository;
import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientRepository; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientRepository;
import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientService; import static org.springframework.security.config.http.OAuth2ClientBeanDefinitionParserUtils.getAuthorizedClientService;
@ -136,12 +136,9 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
BeanMetadataElement authorizedClientRepository = getAuthorizedClientRepository(element); BeanMetadataElement authorizedClientRepository = getAuthorizedClientRepository(element);
if (authorizedClientRepository == null) { if (authorizedClientRepository == null) {
BeanMetadataElement authorizedClientService = getAuthorizedClientService(element); BeanMetadataElement authorizedClientService = getAuthorizedClientService(element);
if (authorizedClientService == null) { this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository(
this.defaultAuthorizedClientRepository = createDefaultAuthorizedClientRepository(clientRegistrationRepository); clientRegistrationRepository, authorizedClientService);
authorizedClientRepository = this.defaultAuthorizedClientRepository; authorizedClientRepository = new RuntimeBeanReference(OAuth2AuthorizedClientRepository.class);
} else {
authorizedClientRepository = createAuthorizedClientRepository(authorizedClientService);
}
} }
BeanMetadataElement accessTokenResponseClient = getAccessTokenResponseClient(element); BeanMetadataElement accessTokenResponseClient = getAccessTokenResponseClient(element);
BeanMetadataElement oauth2UserService = getOAuth2UserService(element); BeanMetadataElement oauth2UserService = getOAuth2UserService(element);