我有自定义身份验证过滤器创建 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
这里(第一个列出)。
任何提示非常感谢。