自从迁移到2.3.x以及新版本的spring安全插件以来,我们的Grails应用程序中开始出现大量“会话已经失效”的异常。
问题似乎与SessionFixationProtectionStrategy中的逻辑有关。当用户向服务器发送2个同时请求时(在2个浏览器选项卡中):
,发生以下情况:
A1 A2 | | B1 A2 - crashes | | B1 | | C2 - recreated for the user | C2
上述行为似乎不正确,因此我的问题是如何正确处理。
答案 0 :(得分:0)
您可以关闭会话固定保护。
在java中:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
...
@Override
protected void configure(HttpSecurity http) throws Exception {
...
http.sessionManagement().sessionFixation().none();
}
...
}
在XML(Spring-Security.xml)中:
<http>
<session-management session-fixation-protection="none"/>
</http>