我有使用 acgi security 进行身份验证的 spring 应用程序我还使用了许多过滤器和拦截器,它在单台主机上运行正常。现在我想使用tomcat在集群中运行我的应用程序,并使用apache服务器的负载平衡。 现在当我在群集中运行我的应用程序时,它在使用的stickySession模式时工作正常, 但是当我使用多播时,它不允许登录并始终重定向到登录页面。
我猜不出为什么会出现这个问题。
答案 0 :(得分:2)
Spring Security的安全上下文存储为会话内的值。因此,如果您的会话跨节点复制,那么上下文也将可用,如果您正在使用棒会话,那么请求将会遇到相同的上下文,因此它可以工作。多播不是即时的,可能是无法在多播模式下工作的原因之一。
我不确定这是否会起作用但是你可以在数据库中使用会话持久性并在节点之间共享,这将优于会话复制,我认为棒会话在我看来是最好的选择。
1)http://www.intelligrape.com/blog/2010/07/21/tomcat-6-session-persistence-through-jdbcstore/ 2)tomcat doc