如何将Spring Security与具有会话复制的群集一起使用以对经过身份验证的用户进行故障转移?

Rya*_*n K 7 java spring-security

如果我正在使用Spring Security和应用程序服务器群集并且正在复制http会话,是否可以让经过身份验证的用户自动故障转移到群集中的另一个节点并仍然登录?使用分布式缓存而不是跨群集复制会话会更好吗?

non*_*ont 2

是的。Spring Security 的安全上下文作为值存储在会话中。因此,如果您的会话被复制,安全上下文也会被复制,因此经过身份验证的用户点击哪个工作人员并不重要。

当然,会话复制不是即时的,因此如果您的用户在服务器停机之前进行身份验证,则故障转移服务器可能没有机会获取复制的上下文。但是,如果他们进行了身份验证,并继续执行一系列操作,然后服务器发生故障,则安全上下文将已被复制,并且用户的会话应在新的故障转移服务器上从中断处继续。

这在 tomcat、jboss 和 weblogic 下会略有不同,因此您确实需要进行测试以确保涵盖您的特定用例。