2012-11-14 103 views
1

當用戶進行註銷(或登錄,對於這個問題)我想確保用戶會話cookie的值改變。我怎樣才能做到這一點?如果我只是做session.invalidate()由於沒有活動會話,tomcat不返回會話cookie標頭,因此cookie保持不變。如果我使用session.invalidate(); request.getSession()創建新會話,則新會話將獲得相同的sessionId,因此Cookie也保持不變。如何在tomcat中更改會話cookie?

(我想改變會話cookie的值,因爲我們有幾個WAR共享一個的sessionId,我不能輕易無效在其他戰爭會議也是如此。)

回答

1

看來你必須刪除該cookie手動按adding an expired version of the cookie來回應。也就是說,您在request.getCookies()中找到cookie,將其最大年齡設置爲0,並執行response.addCookie(..)。您還需要使會話無效,並注意不要在該請求上重新創建會話。這意味着你不能直接顯示「你現在註銷」頁面,但必須做一個客戶端重定向到這樣一個頁面 - 現在將分配一個新的會話cookie。