【发布时间】:2015-09-10 08:21:58
【问题描述】:
我正在使用 Jetty 的会话管理,并希望使用“记住我”选项实现简单的登录。
因此,如果用户不想被记住,我希望 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);
}
}
但是我想尽可能避免处理会话并将其留给容器。
还有其他选择吗?
【问题讨论】:
标签: session servlets cookies jetty servlet-3.0