2014-06-24 22 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中,正如您所建议的那样。