7

我需要有一个 Web 应用程序,它实际上由几个单独的战争统一到 UI 上的同一个导航栏组成,我需要保护所有系统,但只对主 Web 应用程序进行身份验证,并且在此安全上下文自动传播到子 Web 应用程序之后。我正在使用spring security,有人可以帮我建议吗?谢谢

4

2 回答 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 回答