我需要有一个Web应用程序,它实际上是由几个单独的战争统一到UI上的同一个导航栏,我需要保护所有系统,但只对主Web应用程序进行身份验证,并在将此安全上下文自动传播到子Web之后应用。我正在使用春季安全,有人可以帮我提供建议吗?感谢
答案 0 :(得分:6)
Spring Security将登录数据存储在http会话中。所以我想尝试的是在应用程序之间共享会话。
通过使用Single Sing On属性,可以实现这一点(在Tomcat中)。
但要注意,在两个应用程序之间共享会话并非没有危险。请参阅this Stack Overflow question。
答案 1 :(得分:6)
这可以通过以下方法实现。在Spring中,默认情况下SecurityContext
存储在HttpSession
中。相反,您可以将其配置为存储在某个共享存储库中。
因此,应更改配置以使用您自己的SecurityContextRepository
实施,而不是HttpSessionSecurityContextRepository
。配置完成后,安全框架将查看可用于所有Web应用程序的Repository
。
Repository
可以是数据库或缓存服务器。