我有一个使用 Spring Security 4.0.1.RELEASE 的基于 J2EE REST 的 Web 应用程序。我正在使用基于 Java 的配置配置 Spring Security,并将会话创建策略设置为 STATELESS,如下所示:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(secureEnabled=true, prePostEnabled=true, jsr250Enabled=true, order=1)
public class DefaultSecurityBeansConfig extends WebSecurityConfigurerAdapter {
// ...
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()...; // additional config omitted for brevity
// ...
}
// ...
}
在阅读了这篇关于 Spring Security 会话管理的文章后,我认为SessionManagementFilter
过滤器不应该运行在 Spring Security 的过滤器链中。但这绝对是。我可以在该类的doFilter
方法中设置一个断点,它会在对服务器的每个请求上运行。
这里发生了什么?这个过滤器正在运行的事实导致我的应用程序中出现了我认为已被配置掉的其他意外行为。
谢谢。