2014-06-24 19 views
4

我在我的web應用程序中使用spring security v 3.1.3。該應用程序有一個單一的登錄表單定製與春季安全自定義過濾器。目前,我的配置允許用戶自動登錄應用程序,如果他從同一瀏覽器中的其他選項卡打開URL,這是Spring安全會話管理的默認行爲。爲彈簧安全中的不同選項卡執行單獨會話

我想確保無論何時用戶登錄到應用程序,該會話都不應該在不同的選項卡之間共享。在打開新選項卡時,他應該獲取登錄頁面,並且登錄將在同一瀏覽器中創建新會話。現在我找不到用Spring安全框架來做到這一點的方法。我不介意在URL中集成JsessionID,但如果有其他方法,它會更好。

+1

可能會對你有所幫助http://www.codeproject.com/Articles/331609/Get-an-unique-session-in-each-browser-tab以及這個http:// www。 carbonrider.com/2011/01/15/tab-based-browser-session-handling/ –

+0

這篇文章看起來可能有所幫助。看起來這是你在瀏覽器端做的事情,而不是服務器端代碼。無論如何,SO鏈接:http://stackoverflow.com/questions/368653/how-to-differ-sessions-in-browser-tabs/11783754#11783754 – CodeChimp

回答

0

這不是Spring Security的限制,這是瀏覽器如何使用cookie的一般限制;如果你設置了一個cookie,它將被所有的標籤共享。

表示我現在能想到的唯一合理的選擇是將會話ID包含在URL中,正如您所建議的那樣。