我们的应用程序在30分钟后注销并重定向到登录页面,我在web.xml中指定会话超时,并使用requestProcessor进行重定向。我想向用户显示一条消息,指出会话过期后会话已过期,如何我可以这样做吗?自动注销?我想在“会话超时,请重新登录”页面上提示错误消息。那我怎么能检测到会话超时呢?有什么方法会自动触发吗?
创建一个活动检查器,该检查器每分钟检查是否发生了任何用户活动(mouseclick,按键),并向服务器端执行心跳,以在用户活动时保持会话活动,而在用户不活动时不执行任何操作。如果30分钟没有任何活动(或在服务器端设置了任何默认会话超时),请执行重定向。
这是一个启动示例,jQuery几乎没有帮助来绑定click和keypress事件并触发ajax请求。
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$.active = false;
$('body').bind('click keypress', function() { $.active = true; });
checkActivity(1800000, 60000, 0); // timeout = 30 minutes, interval = 1 minute.
});
function checkActivity(timeout, interval, elapsed) {
if ($.active) {
elapsed = 0;
$.active = false;
$.get('heartbeat');
}
if (elapsed < timeout) {
elapsed += interval;
setTimeout(function() {
checkActivity(timeout, interval, elapsed);
}, interval);
} else {
window.location = 'http://example.com/expired'; // Redirect to "session expired" page.
}
}
</script>
创建一个Servlet
监听/heartbeat
并基本上执行以下操作的:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
request.getSession();
}
使会话保持活动状态。
当您将已登录的用户存储在会话中时,只要会话过期,它将“自动”注销。因此,您无需手动注销用户。
问题内容: 我有一个会话验证过滤器,当会话过期时该过滤器注销用户。 这是一段代码,但是没有用。不起作用意味着即使会话过期,它也不会重定向到登录页面。 请帮助我解决此问题。 问题答案: 我有一个会话验证过滤器,当会话过期时该过滤器注销用户。 老实说,这完全没有道理。如果将已登录用户存储为会话的属性,并基于会话中已登录用户的存在来拦截“已登录”状态,则在任何时候都不需要手动注销该用户。会话已过期。当会
通过自动注销,我的意思是当会话到期时,浏览器将自己重定向到注销url,而用户不必单击任何将他重定向到注销url的链接。 导入org.springframework.beans.factory.annotation.autowired;导入org.springframework.boot.autocigure.security.securityproperties;导入org.springframe
我在Tomcat7中有一个web应用程序,它将会话中的用户信息作为DTO对象保存。我还为我的项目启用了Spring Security性,如果用户没有会话,它会自动将用户重定向到登录页面。 如果我登录到应用程序一次,然后在Eclipse中重新启动Tomcat,会发生的情况是,我的会话被冲出,但cookie没有运行。 Edit:尽管Firefox说,但如果关闭并重新启动Firefox,cookie仍然
我正在尝试运行电子商务演示应用程序的自动化脚本。但在将项目添加到购物车时,项目将添加到购物车,但登录会话已过期。我使用selenium、testNG工具和java编程语言开发了脚本。
首先;这个问题类似于另一个尚未解决的问题:对magento soap api的调用立即过期 我正在开发一个基于XMLRPC的客户端-服务器模块。基于Magento的服务器向基于Java的客户端公开了几个API方法。我在我的客户端中使用标准JavaXMLRPC Jars。 我有一个“登录”调用,用于检索会话。然后我把这个传给其他人做不同的电话。我检查了它是否返回(看起来)有效会话。 但是,我使用此会
apache2启用了mod_proxy、mod_proxy_http和mod_proxy_connect,web.xml中的会话超时为30分钟。 编辑:忘了提:我的应用程序正在使用@Push(vaadin特性)