|
@@ -315,11 +315,12 @@ final class AuthenticationConfigBuilder {
|
|
formFilter.getPropertyValues().addPropertyValue("allowSessionCreation", this.allowSessionCreation);
|
|
formFilter.getPropertyValues().addPropertyValue("allowSessionCreation", this.allowSessionCreation);
|
|
formFilter.getPropertyValues().addPropertyValue("authenticationManager", authManager);
|
|
formFilter.getPropertyValues().addPropertyValue("authenticationManager", authManager);
|
|
if (authenticationFilterSecurityContextRepositoryRef != null) {
|
|
if (authenticationFilterSecurityContextRepositoryRef != null) {
|
|
- formFilter.getPropertyValues().addPropertyValue("securityContextRepository",
|
|
|
|
- authenticationFilterSecurityContextRepositoryRef);
|
|
|
|
|
|
+ formFilter.getPropertyValues()
|
|
|
|
+ .addPropertyValue("securityContextRepository", authenticationFilterSecurityContextRepositoryRef);
|
|
}
|
|
}
|
|
- formFilter.getPropertyValues().addPropertyValue("securityContextHolderStrategy",
|
|
|
|
- authenticationFilterSecurityContextHolderStrategyRef);
|
|
|
|
|
|
+ formFilter.getPropertyValues()
|
|
|
|
+ .addPropertyValue("securityContextHolderStrategy",
|
|
|
|
+ authenticationFilterSecurityContextHolderStrategyRef);
|
|
// Id is required by login page filter
|
|
// Id is required by login page filter
|
|
this.formFilterId = this.pc.getReaderContext().generateBeanName(formFilter);
|
|
this.formFilterId = this.pc.getReaderContext().generateBeanName(formFilter);
|
|
this.pc.registerBeanComponent(new BeanComponentDefinition(formFilter, this.formFilterId));
|
|
this.pc.registerBeanComponent(new BeanComponentDefinition(formFilter, this.formFilterId));
|
|
@@ -353,8 +354,8 @@ final class AuthenticationConfigBuilder {
|
|
registerDefaultAuthorizedClientRepositoryIfNecessary(defaultAuthorizedClientRepository);
|
|
registerDefaultAuthorizedClientRepositoryIfNecessary(defaultAuthorizedClientRepository);
|
|
oauth2LoginFilterBean.getPropertyValues().addPropertyValue("authenticationManager", authManager);
|
|
oauth2LoginFilterBean.getPropertyValues().addPropertyValue("authenticationManager", authManager);
|
|
if (authenticationFilterSecurityContextRepositoryRef != null) {
|
|
if (authenticationFilterSecurityContextRepositoryRef != null) {
|
|
- oauth2LoginFilterBean.getPropertyValues().addPropertyValue("securityContextRepository",
|
|
|
|
- authenticationFilterSecurityContextRepositoryRef);
|
|
|
|
|
|
+ oauth2LoginFilterBean.getPropertyValues()
|
|
|
|
+ .addPropertyValue("securityContextRepository", authenticationFilterSecurityContextRepositoryRef);
|
|
}
|
|
}
|
|
|
|
|
|
// retrieve the other bean result
|
|
// retrieve the other bean result
|
|
@@ -366,7 +367,7 @@ final class AuthenticationConfigBuilder {
|
|
String oauth2LoginAuthProviderId = this.pc.getReaderContext().generateBeanName(oauth2LoginAuthProvider);
|
|
String oauth2LoginAuthProviderId = this.pc.getReaderContext().generateBeanName(oauth2LoginAuthProvider);
|
|
this.oauth2LoginFilterId = this.pc.getReaderContext().generateBeanName(oauth2LoginFilterBean);
|
|
this.oauth2LoginFilterId = this.pc.getReaderContext().generateBeanName(oauth2LoginFilterBean);
|
|
String oauth2AuthorizationRequestRedirectFilterId = this.pc.getReaderContext()
|
|
String oauth2AuthorizationRequestRedirectFilterId = this.pc.getReaderContext()
|
|
- .generateBeanName(this.oauth2AuthorizationRequestRedirectFilter);
|
|
|
|
|
|
+ .generateBeanName(this.oauth2AuthorizationRequestRedirectFilter);
|
|
this.oauth2LoginLinks = parser.getOAuth2LoginLinks();
|
|
this.oauth2LoginLinks = parser.getOAuth2LoginLinks();
|
|
|
|
|
|
// register the component
|
|
// register the component
|
|
@@ -401,17 +402,17 @@ final class AuthenticationConfigBuilder {
|
|
registerDefaultAuthorizedClientRepositoryIfNecessary(defaultAuthorizedClientRepository);
|
|
registerDefaultAuthorizedClientRepositoryIfNecessary(defaultAuthorizedClientRepository);
|
|
this.authorizationRequestRedirectFilter = parser.getAuthorizationRequestRedirectFilter();
|
|
this.authorizationRequestRedirectFilter = parser.getAuthorizationRequestRedirectFilter();
|
|
String authorizationRequestRedirectFilterId = this.pc.getReaderContext()
|
|
String authorizationRequestRedirectFilterId = this.pc.getReaderContext()
|
|
- .generateBeanName(this.authorizationRequestRedirectFilter);
|
|
|
|
|
|
+ .generateBeanName(this.authorizationRequestRedirectFilter);
|
|
this.pc.registerBeanComponent(new BeanComponentDefinition(this.authorizationRequestRedirectFilter,
|
|
this.pc.registerBeanComponent(new BeanComponentDefinition(this.authorizationRequestRedirectFilter,
|
|
authorizationRequestRedirectFilterId));
|
|
authorizationRequestRedirectFilterId));
|
|
this.authorizationCodeGrantFilter = parser.getAuthorizationCodeGrantFilter();
|
|
this.authorizationCodeGrantFilter = parser.getAuthorizationCodeGrantFilter();
|
|
String authorizationCodeGrantFilterId = this.pc.getReaderContext()
|
|
String authorizationCodeGrantFilterId = this.pc.getReaderContext()
|
|
- .generateBeanName(this.authorizationCodeGrantFilter);
|
|
|
|
|
|
+ .generateBeanName(this.authorizationCodeGrantFilter);
|
|
this.pc.registerBeanComponent(
|
|
this.pc.registerBeanComponent(
|
|
new BeanComponentDefinition(this.authorizationCodeGrantFilter, authorizationCodeGrantFilterId));
|
|
new BeanComponentDefinition(this.authorizationCodeGrantFilter, authorizationCodeGrantFilterId));
|
|
BeanDefinition authorizationCodeAuthenticationProvider = parser.getAuthorizationCodeAuthenticationProvider();
|
|
BeanDefinition authorizationCodeAuthenticationProvider = parser.getAuthorizationCodeAuthenticationProvider();
|
|
String authorizationCodeAuthenticationProviderId = this.pc.getReaderContext()
|
|
String authorizationCodeAuthenticationProviderId = this.pc.getReaderContext()
|
|
- .generateBeanName(authorizationCodeAuthenticationProvider);
|
|
|
|
|
|
+ .generateBeanName(authorizationCodeAuthenticationProvider);
|
|
this.pc.registerBeanComponent(new BeanComponentDefinition(authorizationCodeAuthenticationProvider,
|
|
this.pc.registerBeanComponent(new BeanComponentDefinition(authorizationCodeAuthenticationProvider,
|
|
authorizationCodeAuthenticationProviderId));
|
|
authorizationCodeAuthenticationProviderId));
|
|
this.authorizationCodeAuthenticationProviderRef = new RuntimeBeanReference(
|
|
this.authorizationCodeAuthenticationProviderRef = new RuntimeBeanReference(
|
|
@@ -421,7 +422,7 @@ final class AuthenticationConfigBuilder {
|
|
void registerDefaultAuthorizedClientRepositoryIfNecessary(BeanDefinition defaultAuthorizedClientRepository) {
|
|
void registerDefaultAuthorizedClientRepositoryIfNecessary(BeanDefinition defaultAuthorizedClientRepository) {
|
|
if (!this.defaultAuthorizedClientRepositoryRegistered && defaultAuthorizedClientRepository != null) {
|
|
if (!this.defaultAuthorizedClientRepositoryRegistered && defaultAuthorizedClientRepository != null) {
|
|
String authorizedClientRepositoryId = this.pc.getReaderContext()
|
|
String authorizedClientRepositoryId = this.pc.getReaderContext()
|
|
- .generateBeanName(defaultAuthorizedClientRepository);
|
|
|
|
|
|
+ .generateBeanName(defaultAuthorizedClientRepository);
|
|
this.pc.registerBeanComponent(
|
|
this.pc.registerBeanComponent(
|
|
new BeanComponentDefinition(defaultAuthorizedClientRepository, authorizedClientRepositoryId));
|
|
new BeanComponentDefinition(defaultAuthorizedClientRepository, authorizedClientRepositoryId));
|
|
this.defaultAuthorizedClientRepositoryRegistered = true;
|
|
this.defaultAuthorizedClientRepositoryRegistered = true;
|
|
@@ -436,7 +437,7 @@ final class AuthenticationConfigBuilder {
|
|
getClass().getClassLoader());
|
|
getClass().getClassLoader());
|
|
if (webmvcPresent) {
|
|
if (webmvcPresent) {
|
|
this.pc.getReaderContext()
|
|
this.pc.getReaderContext()
|
|
- .registerWithGeneratedName(new RootBeanDefinition(OAuth2ClientWebMvcSecurityPostProcessor.class));
|
|
|
|
|
|
+ .registerWithGeneratedName(new RootBeanDefinition(OAuth2ClientWebMvcSecurityPostProcessor.class));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -451,8 +452,8 @@ final class AuthenticationConfigBuilder {
|
|
openIDFilter.getPropertyValues().addPropertyValue("allowSessionCreation", this.allowSessionCreation);
|
|
openIDFilter.getPropertyValues().addPropertyValue("allowSessionCreation", this.allowSessionCreation);
|
|
openIDFilter.getPropertyValues().addPropertyValue("authenticationManager", authManager);
|
|
openIDFilter.getPropertyValues().addPropertyValue("authenticationManager", authManager);
|
|
if (authenticationFilterSecurityContextRepositoryRef != null) {
|
|
if (authenticationFilterSecurityContextRepositoryRef != null) {
|
|
- openIDFilter.getPropertyValues().addPropertyValue("securityContextRepository",
|
|
|
|
- authenticationFilterSecurityContextRepositoryRef);
|
|
|
|
|
|
+ openIDFilter.getPropertyValues()
|
|
|
|
+ .addPropertyValue("securityContextRepository", authenticationFilterSecurityContextRepositoryRef);
|
|
}
|
|
}
|
|
// Required by login page filter
|
|
// Required by login page filter
|
|
this.openIDFilterId = this.pc.getReaderContext().generateBeanName(openIDFilter);
|
|
this.openIDFilterId = this.pc.getReaderContext().generateBeanName(openIDFilter);
|
|
@@ -477,7 +478,7 @@ final class AuthenticationConfigBuilder {
|
|
|
|
|
|
this.saml2AuthenticationFilterId = this.pc.getReaderContext().generateBeanName(saml2WebSsoAuthenticationFilter);
|
|
this.saml2AuthenticationFilterId = this.pc.getReaderContext().generateBeanName(saml2WebSsoAuthenticationFilter);
|
|
this.saml2AuthenticationRequestFilterId = this.pc.getReaderContext()
|
|
this.saml2AuthenticationRequestFilterId = this.pc.getReaderContext()
|
|
- .generateBeanName(this.saml2AuthorizationRequestFilter);
|
|
|
|
|
|
+ .generateBeanName(this.saml2AuthorizationRequestFilter);
|
|
this.saml2AuthenticationUrlToProviderName = parser.getSaml2AuthenticationUrlToProviderName();
|
|
this.saml2AuthenticationUrlToProviderName = parser.getSaml2AuthenticationUrlToProviderName();
|
|
|
|
|
|
// register the component
|
|
// register the component
|
|
@@ -520,8 +521,9 @@ final class AuthenticationConfigBuilder {
|
|
String identifierMatch = attrExElt.getAttribute("identifier-match");
|
|
String identifierMatch = attrExElt.getAttribute("identifier-match");
|
|
if (!StringUtils.hasText(identifierMatch)) {
|
|
if (!StringUtils.hasText(identifierMatch)) {
|
|
if (attrExElts.size() > 1) {
|
|
if (attrExElts.size() > 1) {
|
|
- this.pc.getReaderContext().error("You must supply an identifier-match attribute if using more"
|
|
|
|
- + " than one " + Elements.OPENID_ATTRIBUTE_EXCHANGE + " element", attrExElt);
|
|
|
|
|
|
+ this.pc.getReaderContext()
|
|
|
|
+ .error("You must supply an identifier-match attribute if using more" + " than one "
|
|
|
|
+ + Elements.OPENID_ATTRIBUTE_EXCHANGE + " element", attrExElt);
|
|
}
|
|
}
|
|
// Match anything
|
|
// Match anything
|
|
identifierMatch = ".*";
|
|
identifierMatch = ".*";
|
|
@@ -559,7 +561,7 @@ final class AuthenticationConfigBuilder {
|
|
private void createOpenIDProvider() {
|
|
private void createOpenIDProvider() {
|
|
Element openIDLoginElt = DomUtils.getChildElementByTagName(this.httpElt, Elements.OPENID_LOGIN);
|
|
Element openIDLoginElt = DomUtils.getChildElementByTagName(this.httpElt, Elements.OPENID_LOGIN);
|
|
BeanDefinitionBuilder openIDProviderBuilder = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder openIDProviderBuilder = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(OPEN_ID_AUTHENTICATION_PROVIDER_CLASS);
|
|
|
|
|
|
+ .rootBeanDefinition(OPEN_ID_AUTHENTICATION_PROVIDER_CLASS);
|
|
RootBeanDefinition uds = new RootBeanDefinition();
|
|
RootBeanDefinition uds = new RootBeanDefinition();
|
|
uds.setFactoryBeanName(BeanIds.USER_DETAILS_SERVICE_FACTORY);
|
|
uds.setFactoryBeanName(BeanIds.USER_DETAILS_SERVICE_FACTORY);
|
|
uds.setFactoryMethodName("authenticationUserDetailsService");
|
|
uds.setFactoryMethodName("authenticationUserDetailsService");
|
|
@@ -572,8 +574,8 @@ final class AuthenticationConfigBuilder {
|
|
|
|
|
|
private void injectRememberMeServicesRef(RootBeanDefinition bean, String rememberMeServicesId) {
|
|
private void injectRememberMeServicesRef(RootBeanDefinition bean, String rememberMeServicesId) {
|
|
if (rememberMeServicesId != null) {
|
|
if (rememberMeServicesId != null) {
|
|
- bean.getPropertyValues().addPropertyValue("rememberMeServices",
|
|
|
|
- new RuntimeBeanReference(rememberMeServicesId));
|
|
|
|
|
|
+ bean.getPropertyValues()
|
|
|
|
+ .addPropertyValue("rememberMeServices", new RuntimeBeanReference(rememberMeServicesId));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -631,7 +633,7 @@ final class AuthenticationConfigBuilder {
|
|
RootBeanDefinition filter = null;
|
|
RootBeanDefinition filter = null;
|
|
if (x509Elt != null) {
|
|
if (x509Elt != null) {
|
|
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(X509AuthenticationFilter.class);
|
|
|
|
|
|
+ .rootBeanDefinition(X509AuthenticationFilter.class);
|
|
filterBuilder.getRawBeanDefinition().setSource(this.pc.extractSource(x509Elt));
|
|
filterBuilder.getRawBeanDefinition().setSource(this.pc.extractSource(x509Elt));
|
|
filterBuilder.addPropertyValue("authenticationManager", authManager);
|
|
filterBuilder.addPropertyValue("authenticationManager", authManager);
|
|
filterBuilder.addPropertyValue("securityContextHolderStrategy",
|
|
filterBuilder.addPropertyValue("securityContextHolderStrategy",
|
|
@@ -639,7 +641,7 @@ final class AuthenticationConfigBuilder {
|
|
String regex = x509Elt.getAttribute("subject-principal-regex");
|
|
String regex = x509Elt.getAttribute("subject-principal-regex");
|
|
if (StringUtils.hasText(regex)) {
|
|
if (StringUtils.hasText(regex)) {
|
|
BeanDefinitionBuilder extractor = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder extractor = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(SubjectDnX509PrincipalExtractor.class);
|
|
|
|
|
|
+ .rootBeanDefinition(SubjectDnX509PrincipalExtractor.class);
|
|
extractor.addPropertyValue("subjectDnRegex", regex);
|
|
extractor.addPropertyValue("subjectDnRegex", regex);
|
|
filterBuilder.addPropertyValue("principalExtractor", extractor.getBeanDefinition());
|
|
filterBuilder.addPropertyValue("principalExtractor", extractor.getBeanDefinition());
|
|
}
|
|
}
|
|
@@ -682,13 +684,13 @@ final class AuthenticationConfigBuilder {
|
|
RootBeanDefinition filter = null;
|
|
RootBeanDefinition filter = null;
|
|
if (jeeElt != null) {
|
|
if (jeeElt != null) {
|
|
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(J2eePreAuthenticatedProcessingFilter.class);
|
|
|
|
|
|
+ .rootBeanDefinition(J2eePreAuthenticatedProcessingFilter.class);
|
|
filterBuilder.getRawBeanDefinition().setSource(this.pc.extractSource(jeeElt));
|
|
filterBuilder.getRawBeanDefinition().setSource(this.pc.extractSource(jeeElt));
|
|
filterBuilder.addPropertyValue("authenticationManager", authManager);
|
|
filterBuilder.addPropertyValue("authenticationManager", authManager);
|
|
filterBuilder.addPropertyValue("securityContextHolderStrategy",
|
|
filterBuilder.addPropertyValue("securityContextHolderStrategy",
|
|
authenticationFilterSecurityContextHolderStrategyRef);
|
|
authenticationFilterSecurityContextHolderStrategyRef);
|
|
BeanDefinitionBuilder adsBldr = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder adsBldr = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.class);
|
|
|
|
|
|
+ .rootBeanDefinition(J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.class);
|
|
adsBldr.addPropertyValue("userRoles2GrantedAuthoritiesMapper",
|
|
adsBldr.addPropertyValue("userRoles2GrantedAuthoritiesMapper",
|
|
new RootBeanDefinition(SimpleAttributes2GrantedAuthoritiesMapper.class));
|
|
new RootBeanDefinition(SimpleAttributes2GrantedAuthoritiesMapper.class));
|
|
String roles = jeeElt.getAttribute(ATT_MAPPABLE_ROLES);
|
|
String roles = jeeElt.getAttribute(ATT_MAPPABLE_ROLES);
|
|
@@ -697,8 +699,8 @@ final class AuthenticationConfigBuilder {
|
|
rolesBuilder.addConstructorArgValue(roles);
|
|
rolesBuilder.addConstructorArgValue(roles);
|
|
rolesBuilder.setFactoryMethod("commaDelimitedListToSet");
|
|
rolesBuilder.setFactoryMethod("commaDelimitedListToSet");
|
|
RootBeanDefinition mappableRolesRetriever = new RootBeanDefinition(SimpleMappableAttributesRetriever.class);
|
|
RootBeanDefinition mappableRolesRetriever = new RootBeanDefinition(SimpleMappableAttributesRetriever.class);
|
|
- mappableRolesRetriever.getPropertyValues().addPropertyValue("mappableAttributes",
|
|
|
|
- rolesBuilder.getBeanDefinition());
|
|
|
|
|
|
+ mappableRolesRetriever.getPropertyValues()
|
|
|
|
+ .addPropertyValue("mappableAttributes", rolesBuilder.getBeanDefinition());
|
|
adsBldr.addPropertyValue("mappableRolesRetriever", mappableRolesRetriever);
|
|
adsBldr.addPropertyValue("mappableRolesRetriever", mappableRolesRetriever);
|
|
filterBuilder.addPropertyValue("authenticationDetailsSource", adsBldr.getBeanDefinition());
|
|
filterBuilder.addPropertyValue("authenticationDetailsSource", adsBldr.getBeanDefinition());
|
|
filter = (RootBeanDefinition) filterBuilder.getBeanDefinition();
|
|
filter = (RootBeanDefinition) filterBuilder.getBeanDefinition();
|
|
@@ -733,11 +735,11 @@ final class AuthenticationConfigBuilder {
|
|
this.logger.info("No login page configured. The default internal one will be used. Use the '"
|
|
this.logger.info("No login page configured. The default internal one will be used. Use the '"
|
|
+ FormLoginBeanDefinitionParser.ATT_LOGIN_PAGE + "' attribute to set the URL of the login page.");
|
|
+ FormLoginBeanDefinitionParser.ATT_LOGIN_PAGE + "' attribute to set the URL of the login page.");
|
|
BeanDefinitionBuilder loginPageFilter = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder loginPageFilter = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(DefaultLoginPageGeneratingFilter.class);
|
|
|
|
|
|
+ .rootBeanDefinition(DefaultLoginPageGeneratingFilter.class);
|
|
loginPageFilter.addPropertyValue("resolveHiddenInputs", new CsrfTokenHiddenInputFunction());
|
|
loginPageFilter.addPropertyValue("resolveHiddenInputs", new CsrfTokenHiddenInputFunction());
|
|
|
|
|
|
BeanDefinitionBuilder logoutPageFilter = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder logoutPageFilter = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(DefaultLogoutPageGeneratingFilter.class);
|
|
|
|
|
|
+ .rootBeanDefinition(DefaultLogoutPageGeneratingFilter.class);
|
|
logoutPageFilter.addPropertyValue("resolveHiddenInputs", new CsrfTokenHiddenInputFunction());
|
|
logoutPageFilter.addPropertyValue("resolveHiddenInputs", new CsrfTokenHiddenInputFunction());
|
|
if (this.formFilterId != null) {
|
|
if (this.formFilterId != null) {
|
|
loginPageFilter.addConstructorArgReference(this.formFilterId);
|
|
loginPageFilter.addConstructorArgReference(this.formFilterId);
|
|
@@ -856,10 +858,10 @@ final class AuthenticationConfigBuilder {
|
|
this.anonymousFilter = new RootBeanDefinition(AnonymousAuthenticationFilter.class);
|
|
this.anonymousFilter = new RootBeanDefinition(AnonymousAuthenticationFilter.class);
|
|
this.anonymousFilter.getConstructorArgumentValues().addIndexedArgumentValue(0, key);
|
|
this.anonymousFilter.getConstructorArgumentValues().addIndexedArgumentValue(0, key);
|
|
this.anonymousFilter.getConstructorArgumentValues().addIndexedArgumentValue(1, username);
|
|
this.anonymousFilter.getConstructorArgumentValues().addIndexedArgumentValue(1, username);
|
|
- this.anonymousFilter.getConstructorArgumentValues().addIndexedArgumentValue(2,
|
|
|
|
- AuthorityUtils.commaSeparatedStringToAuthorityList(grantedAuthority));
|
|
|
|
- this.anonymousFilter.getPropertyValues().addPropertyValue("securityContextHolderStrategy",
|
|
|
|
- authenticationFilterSecurityContextHolderStrategyRef);
|
|
|
|
|
|
+ this.anonymousFilter.getConstructorArgumentValues()
|
|
|
|
+ .addIndexedArgumentValue(2, AuthorityUtils.commaSeparatedStringToAuthorityList(grantedAuthority));
|
|
|
|
+ this.anonymousFilter.getPropertyValues()
|
|
|
|
+ .addPropertyValue("securityContextHolderStrategy", authenticationFilterSecurityContextHolderStrategyRef);
|
|
this.anonymousFilter.setSource(source);
|
|
this.anonymousFilter.setSource(source);
|
|
RootBeanDefinition anonymousProviderBean = new RootBeanDefinition(AnonymousAuthenticationProvider.class);
|
|
RootBeanDefinition anonymousProviderBean = new RootBeanDefinition(AnonymousAuthenticationProvider.class);
|
|
anonymousProviderBean.getConstructorArgumentValues().addIndexedArgumentValue(0, key);
|
|
anonymousProviderBean.getConstructorArgumentValues().addIndexedArgumentValue(0, key);
|
|
@@ -890,16 +892,16 @@ final class AuthenticationConfigBuilder {
|
|
private BeanMetadataElement createAccessDeniedHandler(Element element, ParserContext pc) {
|
|
private BeanMetadataElement createAccessDeniedHandler(Element element, ParserContext pc) {
|
|
Element accessDeniedElt = DomUtils.getChildElementByTagName(element, Elements.ACCESS_DENIED_HANDLER);
|
|
Element accessDeniedElt = DomUtils.getChildElementByTagName(element, Elements.ACCESS_DENIED_HANDLER);
|
|
BeanDefinitionBuilder accessDeniedHandler = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder accessDeniedHandler = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(AccessDeniedHandlerImpl.class);
|
|
|
|
|
|
+ .rootBeanDefinition(AccessDeniedHandlerImpl.class);
|
|
if (accessDeniedElt != null) {
|
|
if (accessDeniedElt != null) {
|
|
String errorPage = accessDeniedElt.getAttribute("error-page");
|
|
String errorPage = accessDeniedElt.getAttribute("error-page");
|
|
String ref = accessDeniedElt.getAttribute("ref");
|
|
String ref = accessDeniedElt.getAttribute("ref");
|
|
if (StringUtils.hasText(errorPage)) {
|
|
if (StringUtils.hasText(errorPage)) {
|
|
if (StringUtils.hasText(ref)) {
|
|
if (StringUtils.hasText(ref)) {
|
|
pc.getReaderContext()
|
|
pc.getReaderContext()
|
|
- .error("The attribute " + ATT_ACCESS_DENIED_ERROR_PAGE
|
|
|
|
- + " cannot be used together with the 'ref' attribute within <"
|
|
|
|
- + Elements.ACCESS_DENIED_HANDLER + ">", pc.extractSource(accessDeniedElt));
|
|
|
|
|
|
+ .error("The attribute " + ATT_ACCESS_DENIED_ERROR_PAGE
|
|
|
|
+ + " cannot be used together with the 'ref' attribute within <"
|
|
|
|
+ + Elements.ACCESS_DENIED_HANDLER + ">", pc.extractSource(accessDeniedElt));
|
|
|
|
|
|
}
|
|
}
|
|
accessDeniedHandler.addPropertyValue("errorPage", errorPage);
|
|
accessDeniedHandler.addPropertyValue("errorPage", errorPage);
|
|
@@ -916,10 +918,10 @@ final class AuthenticationConfigBuilder {
|
|
return this.defaultDeniedHandlerMappings.values().iterator().next();
|
|
return this.defaultDeniedHandlerMappings.values().iterator().next();
|
|
}
|
|
}
|
|
accessDeniedHandler = BeanDefinitionBuilder
|
|
accessDeniedHandler = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(RequestMatcherDelegatingAccessDeniedHandler.class);
|
|
|
|
|
|
+ .rootBeanDefinition(RequestMatcherDelegatingAccessDeniedHandler.class);
|
|
accessDeniedHandler.addConstructorArgValue(this.defaultDeniedHandlerMappings);
|
|
accessDeniedHandler.addConstructorArgValue(this.defaultDeniedHandlerMappings);
|
|
accessDeniedHandler
|
|
accessDeniedHandler
|
|
- .addConstructorArgValue(BeanDefinitionBuilder.rootBeanDefinition(AccessDeniedHandlerImpl.class));
|
|
|
|
|
|
+ .addConstructorArgValue(BeanDefinitionBuilder.rootBeanDefinition(AccessDeniedHandlerImpl.class));
|
|
return accessDeniedHandler.getBeanDefinition();
|
|
return accessDeniedHandler.getBeanDefinition();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -935,7 +937,7 @@ final class AuthenticationConfigBuilder {
|
|
return this.defaultEntryPointMappings.values().iterator().next();
|
|
return this.defaultEntryPointMappings.values().iterator().next();
|
|
}
|
|
}
|
|
BeanDefinitionBuilder delegatingEntryPoint = BeanDefinitionBuilder
|
|
BeanDefinitionBuilder delegatingEntryPoint = BeanDefinitionBuilder
|
|
- .rootBeanDefinition(DelegatingAuthenticationEntryPoint.class);
|
|
|
|
|
|
+ .rootBeanDefinition(DelegatingAuthenticationEntryPoint.class);
|
|
delegatingEntryPoint.addConstructorArgValue(this.defaultEntryPointMappings);
|
|
delegatingEntryPoint.addConstructorArgValue(this.defaultEntryPointMappings);
|
|
return delegatingEntryPoint.getBeanDefinition();
|
|
return delegatingEntryPoint.getBeanDefinition();
|
|
}
|
|
}
|
|
@@ -951,9 +953,9 @@ final class AuthenticationConfigBuilder {
|
|
// is used if no openID login page
|
|
// is used if no openID login page
|
|
// has been set.
|
|
// has been set.
|
|
if (this.formLoginPage != null && this.openIDLoginPage != null) {
|
|
if (this.formLoginPage != null && this.openIDLoginPage != null) {
|
|
- this.pc.getReaderContext().error(
|
|
|
|
- "Only one login-page can be defined, either for OpenID or form-login, " + "but not both.",
|
|
|
|
- this.pc.extractSource(openIDLoginElt));
|
|
|
|
|
|
+ this.pc.getReaderContext()
|
|
|
|
+ .error("Only one login-page can be defined, either for OpenID or form-login, " + "but not both.",
|
|
|
|
+ this.pc.extractSource(openIDLoginElt));
|
|
}
|
|
}
|
|
if (this.formFilterId != null && this.openIDLoginPage == null) {
|
|
if (this.formFilterId != null && this.openIDLoginPage == null) {
|
|
// If form login was enabled through element and Oauth2 login was enabled from
|
|
// If form login was enabled through element and Oauth2 login was enabled from
|
|
@@ -980,10 +982,11 @@ final class AuthenticationConfigBuilder {
|
|
if (this.oauth2LoginEntryPoint != null) {
|
|
if (this.oauth2LoginEntryPoint != null) {
|
|
return this.oauth2LoginEntryPoint;
|
|
return this.oauth2LoginEntryPoint;
|
|
}
|
|
}
|
|
- this.pc.getReaderContext().error("No AuthenticationEntryPoint could be established. Please "
|
|
|
|
- + "make sure you have a login mechanism configured through the namespace (such as form-login) or "
|
|
|
|
- + "specify a custom AuthenticationEntryPoint with the '" + ATT_ENTRY_POINT_REF + "' attribute ",
|
|
|
|
- this.pc.extractSource(this.httpElt));
|
|
|
|
|
|
+ this.pc.getReaderContext()
|
|
|
|
+ .error("No AuthenticationEntryPoint could be established. Please "
|
|
|
|
+ + "make sure you have a login mechanism configured through the namespace (such as form-login) or "
|
|
|
|
+ + "specify a custom AuthenticationEntryPoint with the '" + ATT_ENTRY_POINT_REF + "' attribute ",
|
|
|
|
+ this.pc.extractSource(this.httpElt));
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1025,8 +1028,8 @@ final class AuthenticationConfigBuilder {
|
|
SecurityFilters.OAUTH2_AUTHORIZATION_REQUEST_FILTER));
|
|
SecurityFilters.OAUTH2_AUTHORIZATION_REQUEST_FILTER));
|
|
}
|
|
}
|
|
if (this.openIDFilterId != null) {
|
|
if (this.openIDFilterId != null) {
|
|
- filters.add(
|
|
|
|
- new OrderDecorator(new RuntimeBeanReference(this.openIDFilterId), SecurityFilters.OPENID_FILTER));
|
|
|
|
|
|
+ filters
|
|
|
|
+ .add(new OrderDecorator(new RuntimeBeanReference(this.openIDFilterId), SecurityFilters.OPENID_FILTER));
|
|
}
|
|
}
|
|
if (this.loginPageGenerationFilter != null) {
|
|
if (this.loginPageGenerationFilter != null) {
|
|
filters.add(new OrderDecorator(this.loginPageGenerationFilter, SecurityFilters.LOGIN_PAGE_FILTER));
|
|
filters.add(new OrderDecorator(this.loginPageGenerationFilter, SecurityFilters.LOGIN_PAGE_FILTER));
|