如何确定Java Servlet / Spring会话超时和良好实践

时间:2015-10-08 07:45:41

标签: java spring session cookies spring-security

我注意到jsessionId会被发送到服务器,因此在过滤器中我实际上可以从cookie中获取过期的会话ID。

可以像下面那样放置过滤器逻辑吗?

Cookie jsessionCookie = getSessionIdCookies(request);
Session session = request.getSession(false);
if (session == null || !(jsessionCookie.getValue().equals(session.getId())) {
    //this should be a timeout handling
    ....
} else {
    // normal moving forward
}

由于session == null也可能是因为新请求(可以通过设置特定的过滤规则来过滤掉),我可以更依赖!(jsessionCookie.getValue().equals(session.getId())吗?

甚至可以将request.getSession(false)更改为request.getSession()并始终将Cookie与会话ID进行比较?

会话超时管理是否有更好的管理实践?

1 个答案:

答案 0 :(得分:0)

您可以在ServletContext上注册HttpSessionListener,以便在会话失效时收到通知。