【发布时间】:2014-10-23 11:08:59
【问题描述】:
我有自定义身份验证过滤器,它创建 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 拾取并作为过滤器包含在内。所以我的过滤器链看起来像:
- ssoAuthenticationFilter(包括因为是
Filter) - filterChainProxy(弹簧自动配置)
- ...
- SecurityContextPersistenceFilter
- ssoAuthenticationFilter(包含在
http.addFilterAfter(...)中) - ...
- 其他一些过滤器
显然,我想在此处摆脱ssoAuthenticationFilter 的自动注册(列出的第一个)。
非常感谢任何提示。
【问题讨论】:
标签: java spring spring-security spring-boot