Session ApacheIgnite似乎会导致会话固定
我使用ApacheIgnite对web会话进行集群,并使用SpringSecurity进行基于表单的身份验证。我使用的软件有:Session ApacheIgnite似乎会导致会话固定,session,spring-security,ignite,Session,Spring Security,Ignite,我使用ApacheIgnite对web会话进行集群,并使用SpringSecurity进行基于表单的身份验证。我使用的软件有: JDK 1.8.0_60 ApacheTomcat 7.0.68 Apache Ignite 1.5.0.final 弹簧安全3.1.3.1释放 (没有ApacheIgnite,基于表单的身份验证工作正常,身份验证成功后,JSESSIONID cookie会发生更改,以防止会话固定攻击,如预期的那样。) 使用Apache Ignite,我无法登录,并收到以下警告:
- JDK 1.8.0_60
- ApacheTomcat 7.0.68
- Apache Ignite 1.5.0.final
- 弹簧安全3.1.3.1释放
2016-04-18 16:49:07,283 WARN org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy/onAuthentication 102 - Your servlet container did not change the session ID when a new session was created. You will not be adequately protected against session-fixation attacks
如果我在Spring配置中关闭会话固定保护,如下所示:
<http>
...
<session-management session-fixation-protection="none" />
...
</http>
...
...
它起作用了。(因此,JSESSIONID cookie在身份验证成功后不会更改。)Tomcat 7具有内置的会话固定功能
- 在身份验证时更改jsessionid以完全防止会话固定攻击
<http>
...
<session-management session-fixation-protection="none" />
...
</http>
<session-management session-fixation-protection="none" />
...
...
当然,在Spring安全认证成功后,JSESSIONID cookie不会改变
然后,我对以下配置进行注释:
<http>
...
<session-management session-fixation-protection="none" />
...
</http>
<session-management session-fixation-protection="none" />
它也起作用。身份验证成功后,JSESSIONID cookie将按预期进行更改
好的,我现在将使用Ignite版本1.5.0.final(没有会话固定保护),并等待版本1.6.x的发布。您能否尝试夜间构建并检查问题是否在那里重现?自1.5版以来,Ignite进行了多个相关修复。构建可以在这里下载:但如问题中所述,如果没有ApacheIgnite,基于表单的身份验证工作正常,并且在身份验证成功后JSESSIONID cookie会发生更改,以防止会话固定攻击。在这种情况下,Tomcat(版本7.0.68)确实允许应用程序更改会话ID。