2014-03-31 127 views
1

我使用Shiro框架进行身份验证。Chrome浏览器关闭后Jsessionid cookie不会过期

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

P.S.我不使用shiro记事本功能。但是,无论如何,Shiro在使用时创建另一个cookie(名为rememberMe)。

回答

4

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

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

认为谷歌已经标明这是WONTFIX,所以最有可能的,我们将不得不忍受这一点。为了解决这个问题,我将最大年龄设置为一些可接受的值,以便FF和Chrome可以具有相同的行为。否则,当窗口关闭时,FF会将我关闭,但Chrome可能会继续保持会话的时间长度。

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

相关问题