0

就在最近,我从 web 2.4 迁移到了 web 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 中会导致意外超时。我可以登录到我的应用程序,但之后当我点击其他任何内容时,我会被踢出一条消息,上面写着“会话已过期”。我做错什么了吗?任何帮助将非常感激

4

2 回答 2

1

<secure>true</secure>意味着您的浏览器将仅通过 HTTPS 而不是通过 HTTP 将 cookie 发送回服务器,因此如果您通过 HTTP 访问该站点,那么在登录后您将不会发送任何 cookie。

于 2012-10-14T06:24:52.227 回答
0

我同意德西斯拉夫·卡梅诺夫的观点。我在 HTTP 上遇到了这个问题,当我删除 true 时它起作用了。因此,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>

于 2015-07-01T12:27:51.273 回答