Tag: session timeout

在Java Web App中定义自定义事件/操作/请求以重置会话超时的计时器?

我在eclipse中使用Tomcat 7.0,Spring 4.0.2,Web Module 3.0作为我的Web应用程序。 我在app / web.xml以及tomcat / conf / web.xml中配置了会话超时。 30 我知道tomcat必须重置它的内部计时器来计算这30分钟并使某些事件/动作/请求的会话(会话超时)无效。 我每隔5分钟发送一个名为captureLastActiveTimeForCurrentFile的请求。 所以现在应用服务器永远不会使会话无效,因为我每隔5分钟发送一次请求,所以它会在每5分钟后重置一次会话超时定时器 。 现在我的问题是如何忽略任何特定请求(此处为captureLastActiveTimeForCurrentFile )以重置会话超时计时器 。 这意味着当我发送captureLastActiveTimeForCurrentFile请求时,服务器不能重置它的计时器。 对于所有其他人的请求它应该工作,因为它是如何工作的。 因此,如果我不向服务器发送任何其他(不包括captureLastActiveTimeForCurrentFile )请求,则必须在30分钟后使会话无效。 我能想到的解决方案: – >我将在web.xml文件中配置会话超时很长时间。 – >我将在服务器上的每个请求调用之后捕获一个全局变量中的最后请求时间 ,不包括captureLastActiveTimeForCurrentFile – >我将启动自己的调度程序,它将在每5分钟后运行,它将检查上次请求时间 – 当前时间> 30分钟 ,然后我将手动使会话无效。 但我认为这个解决方案很复杂,性能明智不是一个好主意。 有没有其他方法可以在服务器上配置排除的请求 ,以便服务器将忽略该特定请求。 如果我的任何假设是错误的,请纠正我。 提前致谢。 任何帮助将是欣赏。

如何在不重置tomcat的会话超时的情况下执行经过身份validation的AJAX请求?

我有一个正在生产的现有Grails Web应用程序,并且有30分钟的会话超时。 我们正在运行Tomcat(tcServer)。 当用户通过身份validation并在某些页面上我想要定期轮询对服务器的ajax请求,这些请求不会延长这个30分钟的会话超时 – 这样我们的会话超时就不会被阻止。 问题类似于这个未经回答的asp.net问题 ,但是在Java / Tomcat领域中没有任何答案可以做到这一点。 如何在不重置tomcat的会话超时的情况下执行经过身份validation的AJAX请求? 是否存在某种filter或URL匹配机制,我可以使用它来排除延长会话超时的请求?

即使用户正在使用系统,N分钟后的绝对会话到期

我正在使用带有弹簧安全性的grails web应用程序。 即使会话处于活动状态,我也要求在固定的一组时间后强制会话到期。 我想我可以添加filter并检查每个请求的上次登录时间: if (CURRENT_TIME – LAST_LOGIN > ABSOLUTE_SESSIO EXPIRATION) then FORCE LOGOUT 但问题是,在用户发出请求之前,会话仍然在服务器上处于活动状态。 即使用户使用系统,这可能会在N分钟后立即销毁会话吗? 我正在研究tomcat会话管理以及Spring安全性如何处理它,但没有找到任何有用的信息。 有人能指出我的一些例子吗? 有没有人实现类似的东西?

如何区分注销和会话过期?

案例1:注销:一旦我们注销,如果有人试图访问之前的版本,它必须自动重定向到login.jsp 案例2:会话已过期:如果会话在用户仍然登录时到期,则必须尝试在访问上一页时自动重定向到sessionExpired.jsp。 如何区分? 我正在注销登录时无效。