会话到期后,Java Request.isRequestedSessionValid()仍为true

时间:2011-03-22 21:21:58

标签: java session security

我正在使用Spring Security 3.0并创建了一个自定义过滤器来检查过期的会话。

我的问题是,即使我让会话过期或注销,request.isRequestedSessionValid()也会在我的过滤器中返回true。如果我尝试访问任何安全页面,我会被重定向到我的登录页面,所以我知道会话管理工作。

我的理解是,当一个Web会话超时时,会话自动失效,我还在Spring Security的logout元素中设置了invalidate-session。会话如何仍然有效?我检查错误的值吗?

1 个答案:

答案 0 :(得分:2)

request.isRequestedSessionValid()本身可以导致创建会话,即使在调用logout之后也是如此。使用request.getSession(false) != null来检查,这将确保不会创建会话。