就在最近,我从网络版2.4迁移到了网络版3.0。这次迁移的要求之一是,我需要在我的应用程序中引入“httponly”cookie。所以,我将以下sessionconfig元素添加到我的web.xml
<session-config>
<session-timeout>240</session-timeout>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
将上述sessionconfig添加到我的web.xml中会导致意外超时。我可以登录我的应用程序,但在此之后,当我点击其他任何内容时,我被踢出一条消息“Session Expired”。我做错了吗?任何帮助将不胜感激
答案 0 :(得分:1)
<secure>true</secure>
表示您的浏览器仅通过HTTPS而不是通过HTTP将cookie发送回服务器,因此如果您通过HTTP访问该站点,则在登录后您将不发送cookie。
答案 1 :(得分:0)
我同意Desislav Kamenov的观点。我通过HTTP遇到了这个问题,当我删除它时,它工作正常。因此,HTTP和HTTPS的正确配置如下: -
HTTP: -
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
HTTPS:
<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>