我有一个 JSF 2 应用程序,它使用在 Tomcat 6 上运行的 RichFaces 4 和 Spring Security 3.1(也在 Tomcat 7 上测试过)。Spring Security 处理会话超时并将用户重定向到登录页面。这完美无缺。
问题是 AJAX 调用不像普通导航调用那样具有延长会话生命周期的效果。
我读过其他文章,这些文章暗示 AJAX 调用的行为与普通导航调用不同,这就是不扩展会话的原因(不幸的是,它们都没有提供关于为什么会这样的明确解释)。该线程表明调用将起到getSession()
作用。但是,这对我不起作用。
我没有编写我自己的 jquery poller,而是按照这里的建议使用了 PrimeFaces idlemonitor 。由空闲监视器重置调用调用的 bean 方法getSession()
。为了测试,我将会话超时时间设置为 4 分钟。即使在两分钟后调用带有 getSession() 的 AJAX 方法,会话仍然在我导航到该页面后正好 4 分钟到期。
知道我做错了什么吗?更重要的是,您将如何调试这种情况?
谢谢