我使用Apache对web会话进行集群,并使用Spring安全性进行基于表单的身份验证。我使用的软件是:
(没有Apache,基于表单的身份验证可以正常工作,JSESSIONID cookie在身份验证成功后就会被更改,以防止会话固定攻击,正如预期的那样。)
使用Apache,我无法登录,并收到以下警告:
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在身份验证成功后不会改变。)
发布于 2016-04-19 11:56:34
按照Valentin的建议(谢谢),我尝试了Apache的夜间建筑,版本1.6.0-快照#20160419-SHA1:186c8604。事实上,这是可行的。
它适用于以下Spring安全配置:
<http>
...
<session-management session-fixation-protection="none" />
...
</http>当然,在Spring安全身份验证成功后,JSESSIONID不会改变。
然后我注释掉以下配置:
<session-management session-fixation-protection="none" />这也很管用。认证成功后,JSESSIONID就会按预期的方式进行更改。
好的,我现在将使用Ignite版本1.5.0.final (没有会话固定保护),并等待版本1.6.x的发布。
发布于 2016-04-19 00:32:04
Tomcat 7有内置的会话固定功能,
Tomcat不允许应用程序更改会话ID。
https://stackoverflow.com/questions/36699223
复制相似问题