我有自定义身份验证过滤器创建 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(spring autoconfiguration)
- ...
- SecurityContextPersistenceFilter
- ssoAuthenticationFilter(包括在内
http.addFilterAfter(...)) - ...
- 其他一些过滤器
显然我想摆脱自动注册 ssoAuthenticationFilter 这里(第一个列出)。
任何提示非常感谢。