在几个Web应用程序之间共享安全上下

时间:2013-01-02 12:10:29

标签: spring security web

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

2 个答案:

答案 0 :(得分:6)

Spring Security将登录数据存储在http会话中。所以我想尝试的是在应用程序之间共享会话。

通过使用Single Sing On属性,可以实现这一点(在Tomcat中)。

但要注意,在两个应用程序之间共享会话并非没有危险。请参阅this Stack Overflow question

答案 1 :(得分:6)

这可以通过以下方法实现。在Spring中,默认情况下SecurityContext存储在HttpSession中。相反,您可以将其配置为存储在某个共享存储库中。

因此,应更改配置以使用您自己的SecurityContextRepository实施,而不是HttpSessionSecurityContextRepository。配置完成后,安全框架将查看可用于所有Web应用程序的Repository

Repository可以是数据库或缓存服务器。