我正在使用Spring Security 3.0并创建了一个自定义过滤器来检查过期的会话。
我的问题是,即使我让会话过期或注销,request.isRequestedSessionValid()也会在我的过滤器中返回true。如果我尝试访问任何安全页面,我会被重定向到我的登录页面,所以我知道会话管理工作。
我的理解是,当一个Web会话超时时,会话自动失效,我还在Spring Security的logout元素中设置了invalidate-session。会话如何仍然有效?我检查错误的值吗?
答案 0 :(得分:2)
request.isRequestedSessionValid()
本身可以导致创建会话,即使在调用logout之后也是如此。使用request.getSession(false) != null
来检查,这将确保不会创建会话。