如何在运行时覆盖会话超时间隔。基本上在登录时,如果想要在特定时间内登录,则向用户提供选项(7)。
一旦用户通过身份验证,我在会话中设置了max inactiveInterval。
WebRequest请求=(WebRequest) 。WebRequestCycle.get()Request()方法; request.getHttpServletRequest()。getSession()。setMaxInactiveInterval(HOURS * 60);
但这似乎不起作用。用户在此之后仍然登录。
谢谢!
PRATIK
答案 0 :(得分:1)
我相信这个方法的名称不言而喻。 setMaxInactiveInterval()肯定会在最后一次响应之后等待一段时间才能使会话到期,所以你的会话在最后一次响应后会保持活动7小时?
至于答案,你可能正在查看页面内或会话中的某些内容,这些内容会检查预定义的时间,看它是否超过预定义的时间段。
希望这有帮助。
答案 1 :(得分:0)
该方法需要几秒而不是几分钟,但这并不能解释这种现象。
如果它发生变化,您可以在浏览器的cookie中验证会话ID吗?我遇到过这样一种情况:会话处理是如此“强大”,创建了一个全新的会话,除非通知浏览器页面会话终止,否则它只会创建一个新会话。现在我承认这已经回到了我的perl时代,并且容器管理会话不太可能发生这种情况