动态设置会话cookie最大年龄

问题描述 投票:1回答:1

我正在使用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
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.