我正在致力於Spring MVC
應用程序。通常會遇到服務器關閉時客戶端會話過期的問題。如何保持客戶端會話在服務器斷開後在彈簧MVC中保持活動狀態
所以,我想讓會話繼續。當服務器啓動時,客戶端不需要再次登錄。 我們可以在數據庫中保存Cookie ID或會話ID以使客戶端重新連接。
我正在致力於Spring MVC
應用程序。通常會遇到服務器關閉時客戶端會話過期的問題。如何保持客戶端會話在服務器斷開後在彈簧MVC中保持活動狀態
所以,我想讓會話繼續。當服務器啓動時,客戶端不需要再次登錄。 我們可以在數據庫中保存Cookie ID或會話ID以使客戶端重新連接。
如果使用的是春天的安全性,你可以有你自己的實現SecurityContextRepository的(默認情況下,這是HttpSessionSecurityContextRepository)將會話內容保留在數據庫中。通過這種方式,當用戶展示他的cookie時,安全框架過濾器(SecurityContextPersistentFilter)將查看您的數據庫以查看會話。因此,即使服務器關閉,上下文在數據庫中仍然可用,並在服務器重新啓動後的下一個用戶請求期間加載。
如果會話持久性不是選項,則可能必須部署具有會話複製策略的服務器集羣。
記住我的目的是完全不同的。這不是讓跨服務器重啓的會話,而是跨客戶端(瀏覽器)中的重啓。即使記住我,你不能通過服務器重新啓動,除非你使用PersistentRememberMeService(到數據庫)
如果您設置標記爲某些不會更改的值,您實際上可以在服務器重新啓動時使用基於令牌的策略進行驗證。默認情況下,令牌會在每次應用程序啓動時重新生成,我想這就是您認爲無法使其運行的原因。 –
春天安全記得我 – NimChimpsky
@NimChimpsky不完全記得我。當用戶進入系統時,在任何情況下,服務器都會關閉一段時間,然後再重新連接。 – Avinash
是的,那是多少記住我春天的安全提供的功能 – NimChimpsky