我有自定义身份验证过滤器,该过滤器创建PreAuthenticatedAuthenticationToken
并将其存储在安全上下文中。这一切都很好。这是配置:
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private SsoAuthenticationProvider authenticationProvider;
@Autowired
private SsoAuthenticationFilter ssoAuthenticationFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(ssoAuthenticationFilter, SecurityContextPersistenceFilter.class);
}
}
现在,我的
ssoAuthenticationFilter
是FilterChainProxy
的一部分,在正确的位置。光滑的。但是由于
ssoAuthenticationFilter
是Filter
,因此它会被Boot拾取并作为过滤器包含在内。所以我的过滤器链看起来真的像:Filter
而包含在内)http.addFilterAfter(...)
中)显然,我想摆脱这里
ssoAuthenticationFilter
的自动注册(列出的第一个)。任何提示,不胜感激。
最佳答案
2个选择:
FilterRegistrationBean
@Bean
并将其标记为enabled = false @Bean
定义(通常就是我要做的,但是是YMMV,因为您可能依赖 Autowiring 或某些使它起作用的方法)