parent
98a2ca3bbc
commit
34b40deb38
|
@ -46,7 +46,9 @@ import org.springframework.security.core.authority.mapping.SimpleAttributes2Gran
|
|||
import org.springframework.security.core.authority.mapping.SimpleMappableAttributesRetriever;
|
||||
import org.springframework.security.web.access.AccessDeniedHandlerImpl;
|
||||
import org.springframework.security.web.access.ExceptionTranslationFilter;
|
||||
import org.springframework.security.web.access.RequestMatcherDelegatingAccessDeniedHandler;
|
||||
import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
|
||||
import org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint;
|
||||
import org.springframework.security.web.authentication.Http403ForbiddenEntryPoint;
|
||||
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
|
||||
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider;
|
||||
|
@ -165,6 +167,8 @@ final class AuthenticationConfigBuilder {
|
|||
private BeanDefinition authorizationCodeGrantFilter;
|
||||
private BeanReference authorizationCodeAuthenticationProviderRef;
|
||||
|
||||
private final Map<BeanDefinition, BeanMetadataElement> defaultDeniedHandlerMappings = new ManagedMap<>();
|
||||
private final Map<BeanDefinition, BeanMetadataElement> defaultEntryPointMappings = new ManagedMap<>();
|
||||
private final List<BeanDefinition> csrfIgnoreRequestMatchers = new ManagedList<>();
|
||||
|
||||
AuthenticationConfigBuilder(Element element, boolean forceAutoConfig,
|
||||
|
@ -806,6 +810,7 @@ final class AuthenticationConfigBuilder {
|
|||
|
||||
}
|
||||
accessDeniedHandler.addPropertyValue("errorPage", errorPage);
|
||||
return accessDeniedHandler.getBeanDefinition();
|
||||
}
|
||||
else if (StringUtils.hasText(ref)) {
|
||||
return new RuntimeBeanReference(ref);
|
||||
|
@ -813,6 +818,19 @@ final class AuthenticationConfigBuilder {
|
|||
|
||||
}
|
||||
|
||||
if (this.defaultDeniedHandlerMappings.isEmpty()) {
|
||||
return accessDeniedHandler.getBeanDefinition();
|
||||
}
|
||||
if (this.defaultDeniedHandlerMappings.size() == 1) {
|
||||
return this.defaultDeniedHandlerMappings.values().iterator().next();
|
||||
}
|
||||
|
||||
accessDeniedHandler = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(RequestMatcherDelegatingAccessDeniedHandler.class);
|
||||
accessDeniedHandler.addConstructorArgValue(this.defaultDeniedHandlerMappings);
|
||||
accessDeniedHandler.addConstructorArgValue
|
||||
(BeanDefinitionBuilder.rootBeanDefinition(AccessDeniedHandlerImpl.class));
|
||||
|
||||
return accessDeniedHandler.getBeanDefinition();
|
||||
}
|
||||
|
||||
|
@ -825,6 +843,16 @@ final class AuthenticationConfigBuilder {
|
|||
return new RuntimeBeanReference(customEntryPoint);
|
||||
}
|
||||
|
||||
if (!defaultEntryPointMappings.isEmpty()) {
|
||||
if (defaultEntryPointMappings.size() == 1) {
|
||||
return defaultEntryPointMappings.values().iterator().next();
|
||||
}
|
||||
BeanDefinitionBuilder delegatingEntryPoint = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(DelegatingAuthenticationEntryPoint.class);
|
||||
delegatingEntryPoint.addConstructorArgValue(defaultEntryPointMappings);
|
||||
return delegatingEntryPoint.getBeanDefinition();
|
||||
}
|
||||
|
||||
Element basicAuthElt = DomUtils.getChildElementByTagName(httpElt,
|
||||
Elements.BASIC_AUTH);
|
||||
Element formLoginElt = DomUtils.getChildElementByTagName(httpElt,
|
||||
|
|
Loading…
Reference in New Issue