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

标签 java spring-security

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

最佳答案

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

当然, session 复制不是瞬时的,因此如果您的用户在服务器宕机之前进行身份验证,故障转移服务器可能没有机会获取复制的上下文。但是,如果他们进行了身份验证,并继续做一堆事情,然后服务器出现故障,安全上下文就已经被复制了,用户的 session 应该从它停止的地方开始,在新的故障转移服务器上。

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

关于java - 我如何将 Spring Security 与具有 session 复制功能的集群一起使用以对经过身份验证的用户进行故障转移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4396546/

相关文章:

java - 从非 UI 线程更新 UI 方法中的状态

java等待观察者完成

java - spring中哪个类实现了JpaRepository接口(interface)

java - 多个身份验证提供程序 :/j_spring_security_check and social login

java - 在未实现的 Cloneable 类的对象上调用clone() 方法不会抛出 RuntimeException

java - JPanel - 网格布局

grails - 角色无效时如何在api-rest grails上返回403

java - GWT 中的@Preauthorize

java - Spring security 和 @Configuration 命令

java - Spring Security Java 配置