Spring和acgi安全是tomcat中负载平衡的问题

Posted

技术标签:

【中文标题】Spring和acgi安全是tomcat中负载平衡的问题【英文标题】:Spring and acgi security is issue with load balancing in tomcat 【发布时间】:2012-10-16 09:06:10 【问题描述】:

我有 spring 应用程序使用 acgi security 进行身份验证,我还使用了许多 过滤器和拦截器,它在单个主机上运行良好。现在我想使用 tomcat 在集群中运行我的应用程序,并使用 apache 服务器的 负载平衡。 现在,当我在集群中运行我的应用程序时,当 使用stickySession 模式 时它可以正常工作, 但是当我使用多播时,它不允许登录并且总是重定向到登录页面。

我不知道为什么会出现这个问题。

【问题讨论】:

【参考方案1】:

Spring Security 的安全上下文作为值存储在您的会话中。因此,如果您的会话跨节点复制,那么上下文也将可用,如果您使用的是棒会话,那么请求将命中相同的上下文,因此它可以工作。多播不是即时的,可能是无法在多播模式下工作的原因之一。

我不确定这是否可行,但您可以在数据库中使用会话持久性并跨节点共享,这将比会话复制具有优势,但我认为坚持会话将是我认为的最佳选择。

1) http://www.intelligrape.com/blog/2010/07/21/tomcat-6-session-persistence-through-jdbcstore/ 2)tomcat doc

【讨论】:

以上是关于Spring和acgi安全是tomcat中负载平衡的问题的主要内容,如果未能解决你的问题,请参考以下文章

为 Apache/Tomcat 负载平衡启用粘性会话模式

Web Sockets + Tomcat/Glassfish + 集群 + 负载平衡 - 都有哪些选项?

使用 Spring Cloud 有什么优势?

Spring Cloud之客户端负载平衡器:Ribbon

无法在 HTTPD.CONF 文件中配置 mod_JK 以进行负载平衡

跟我学习Spring cloud-客户端负载平衡器:Ribbon