2015-06-24 33 views
1

我正在使用Jetty的会话管理并希望使用'记住我'选项实现简单登录。动态设置会话cookie最大年龄

因此,如果用户不想被记住,我想让JSESSIONID cookie活到浏览器会话关闭。如果用户选择记住,cookie将在30天内过期。

我使用SessionCookieConfig在启动时配置cookie详细信息,我无法更改每个请求。

那么有没有办法来动态改变每个登录请求的最大年龄? 我能看到的唯一方法是让从请求中的cookie,然后改变最大年龄:

//in LoginServlet 
doPost(HttpServletRequest request, HttpServletResponse response) { 
    //... Get remember me option from request 
    request.getCookies(); 
    //... Find cookie in array by name JSESSIONID 
    if (rememberMe) { 
     sessionCookie.setMaxAge(60 * 60 * 24 * 30); 
    } else { 
     sessionCookie.setMaxAge(-1); 
    } 
} 

不过,我想尽可能多地从处理会话不要和它留给容器。

还有其他的选择吗?

回答

0

jsessionid cookie由容器处理,因此我不建议您尝试重新调整它的用途。相反,关于如何实现“记住我”功能的stackoverflow有大量信息:请尝试herehere

+0

请编辑您的第一个链接到有用的东西或删除它。 – emirb