-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Description
I'm using
- Spring Boot 2.7.12
- Spring Security 5.8.3
(I did test with Spring Boot 3.1.0, and I am facing the same issue)
Describe the bug
While playing around with Custom DSL, I noticed 2 additional filters are being applied when using custom dsl
.
- DefaultLoginPageGeneratingFilter
- DefaultLogoutPageGeneratingFilter
Not exactly sure if this is intended behavior, but I thought it shouldn't be?
To Reproduce
Here's the following code
@Configuration(proxyBeanMethods = false)
@EnableWebSecurity(debug = true)
public class WebSecurityConfig {
@Bean
public SecurityFilterChain docsFilterChain(HttpSecurity http) throws Exception {
return http
// .apply(DummyDsl.dummyDsl())
// .and()
.build();
}
}
public class DummyDsl extends AbstractHttpConfigurer<DummyDsl, HttpSecurity> {
@Override
public void init(HttpSecurity http) throws Exception {
http.formLogin(AbstractHttpConfigurer::disable);
}
public static DummyDsl dummyDsl() {
return new DummyDsl();
}
}
When custom dsl
is not applied, this is the filter chain
Security filter chain: [
DisableEncodeUrlFilter
WebAsyncManagerIntegrationFilter
SecurityContextHolderFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
ExceptionTranslationFilter
]
But when it is being applied, this is the filter chain
Security filter chain: [
DisableEncodeUrlFilter
WebAsyncManagerIntegrationFilter
SecurityContextHolderFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
DefaultLoginPageGeneratingFilter
DefaultLogoutPageGeneratingFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
ExceptionTranslationFilter
]
Expected behavior
I should expect that the filter chain should be same across both setup, unless I am missing something (I hope not)?
Sample
You can find the reproduce over at spring-security-custom-dsl-bug
Additional Notes
As the docs isn't very explicit, but can I assume that the custom dsl
is used for, or at least, can be used for the purpose of having a common configuration that can be re-use in different SecurityFilterChain
?