最近我们遇到了一个严重的问题,一个用户得到了另一个用户的数据。这个问题几乎不可能重现。
我们正在使用 Spring-security 提供的标准登录用户管理,我们确信问题不在于将用户存储在实例变量中或在我们的应用程序中存储类似的并发内容。
我们真的怀疑问题出在 SpringSecurity 或 Tomcat 本身。
我们的前端服务器是 apache httpd,通过 ajp 连接器 (mod_jk) 连接到 tomcat。我们没有做任何负载平衡(httpd 只关心 SSL、一些 url 重写和服务一些 php 模块)
这是我们的设置:
## OS
OS Name: Linux
OS Version: 2.6.32-5-686
Architecture: i386
## Apache httpd
Server version: Apache/2.2.16 (Debian)
Server built: Sep 4 2011 20:27:42
## mod_jk
mod_jk/1.2.30 (installed via apt-get)
## JVM
JVM Version: 1.6.0_18-b18
JVM Vendor: Sun Microsystems Inc.
## Tomcat
Server version: Apache Tomcat/6.0.28
Server built: February 12 2011 1443
我们将此会话中的 httpd / mod_jk 混淆了,因此我们唯一的解决方案是删除 apache httpd。但在我们离开这个流行且广泛使用的配置之前,我们想知道是否有人遇到过类似的问题。
我发现的唯一类似问题是负载平衡或 mod_jk。
你有没有遇到过类似的问题?任何提示、想法、链接或经验都将受到高度赞赏。谢谢!