我需要有一个 Web 应用程序,它实际上由几个单独的战争统一到 UI 上的同一个导航栏组成,我需要保护所有系统,但只对主 Web 应用程序进行身份验证,并且在此安全上下文自动传播到子 Web 应用程序之后。我正在使用spring security,有人可以帮我建议吗?谢谢
问问题
10045 次
2 回答
7
这可以通过以下方法来实现。在 Spring 中,SecurityContext
默认情况下存储在HttpSession
. 相反,您可以将其配置为存储在某个共享存储库中。
因此,应该更改配置以使用您自己的SecurityContextRepository
实现而不是HttpSessionSecurityContextRepository
. 配置完成后,安全框架将查看Repository
可用于所有 Web 应用程序的内容。
Repository
可以是数据库或缓存服务器。
于 2013-05-23T12:02:05.307 回答
6
Spring Security 将登录数据存储在 http 会话中。所以我会尝试在应用程序之间共享会话。
通过使用Single Sing On属性,这似乎是可能的(在 Tomcat 中)。
但请注意,在两个应用程序之间共享会话并非没有危险。请参阅此堆栈溢出问题。
于 2013-01-02T12:35:50.557 回答