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 不会过期的主要内容,如果未能解决你的问题,请参考以下文章