2014-08-27 72 views
2

是否可以在Spring Security中關閉HTTP會話超時?如何在Spring Security中關閉HTTP會話超時?

從這個answer我看到HTTP會話超時可以在web.xml進行修改如下:

<session-config> 
    <session-timeout>10</session-timeout> 
</session-config> 

但我沒有從春季安全手冊找到如何禁用超時。

從這個answer我看到Spring Security使用一個內部的javax.servlet.http.HttpSession,它根據該manual page可以設置爲從不通過調用方法的setMaxInactiveInterval到期(0)。

因此,應該可以通過獲取HttpSession(如在答案中顯示here)並將maxInactiveInterval更改爲0來更改會話超時。我的問題是,如果我將在用戶第一次登錄後執行此操作在這種情況下,這種變化是否會持續存在於HttpSession中(即,在下一個請求中,HttpSession中的變化是否仍然存在?)

是否可以像這樣或者之後禁用web.xml中的會話超時?

<session-config> 
    <session-timeout>0</session-timeout> 
</session-config> 

另一個問題,Spring Security中的默認HTTP會話超時是什麼?下面

+1

你真的不希望這樣做。它們可以持續多年,並且隨時都會佔用資源。設置一個很大的超時時間,不會給您的用戶帶來不便。我使用了八個小時,但是我懷疑由於資源消耗的原因,我不得不將其削減到四個小時。 – EJP 2014-08-27 08:34:55

+0

謝謝你的評論,我沒有想到這個。我的目的八個小時就足夠了。 – 2014-08-27 08:42:02

回答

3

Yes.The片斷將保持在HttpSession活着,除非會話無效明確

<session-config> 
    <session-timeout>0</session-timeout> 
</session-config> 
相關問題