2015-06-24 32 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