Chrome 关闭后 Jsessionid cookie 不会过期

Posted

技术标签:

【中文标题】Chrome 关闭后 Jsessionid cookie 不会过期【英文标题】:Jsessionid cookie doesn't expire after Chrome closing 【发布时间】:2014-05-11 08:20:06 【问题描述】:

我使用 Shiro 框架进行身份验证。

问题是:当我关闭 Chrome 浏览器并再次打开它时,我仍然可以访问受保护的 URL。如果我手动删除 jsessionid cookie 一切正常,则禁止访问受保护的 URL。在 jsessionid 的设置中,我看到:过期:浏览会话结束时。所以,它应该过期,但它没有。我也在firefox中做了这个操作,没有那个问题。我什至不知道用哪种方式调查。

附:我不使用 shiro 记住我的功能。但是,无论如何,在使用时,Shiro 会创建另一个 cookie(名为 rememberMe)。

【问题讨论】:

【参考方案1】:

这是 Chrome 上的已知行为。与 Apache Shiro 无关。这是链接:

https://productforums.google.com/forum/#!topic/chrome/9l-gKYIUg50/discussion

认为 Google 已将此标记为 WONTFIX,因此很可能我们将不得不忍受这一点。为了解决这个问题,我将 max-age 设置为某个可接受的值,以便 FF 和 Chrome 可以具有相同的行为。否则,当 FF 在窗口关闭时将我注销时,Chrome 可能会继续保持会话,不管它决定的长度。

另一种方法是在 Shiro 中触发 Session 验证以收集 Shiro 中所有过期的会话并使它们无效。这样,任何尝试使用过期会话登录的客户端都会被告知。此时您可以选择将用户重定向到登录页面。

【讨论】:

以上是关于Chrome 关闭后 Jsessionid cookie 不会过期的主要内容,如果未能解决你的问题,请参考以下文章

学习进度

登录后如何刷新 JSESSIONID cookie

长时间 Selenium 执行后 Chrome 关闭

url中的jsessionid解释

http 请求头的Cookie中的 JSESSIONID 是什么?

Chrome 将在 60 秒后关闭我的 ajax 帖子