很奇怪的东西和尴尬发生在我身上有一天,我没有话来描述发生了什么。
我的应用程序运行春天3 JSF 2.1,Hibernate的4个集成,Spring Security的所有Tomcat上7.我通过电话与某人从C级重要,我们都在同时在同一时间在同一页上的测试环境。 他去导航到我在几乎同一时刻导航到时,他的页面想出了我的个人帐户信息的页面。 我不相信他,所以我走到他的办公室,果然,他莫名其妙地被登录为我的帐户,他没有密码。
该应用程序将保护了患者的健康信息,所以我奉命提供C级的全面报告与发生了什么事,但我怎么也找不到,这是可能的。 我走遍了代码库,并与一无所获。 我试图复制在多个场合的确切的情况,并没有能够重现它。 我甚至没有一个受过教育的猜测,我很高兴。
我想也许有可能是存储在Tomcat应用程序上下文实现会话一些不安全的线程操作,但我没有办法来证明这一点,如果它是不可重复的。 我还认为,因为春季安全作为领先于其他请求并转发,也许其他的Servlet过滤器的一个干扰的筛选工作。 另外两个分别在Primefaces文件上传过滤器,而且我最近增加了Omnifaces SEO过滤器。
该Omnifaces过滤并在事实上干扰了Primefaces文件,我与它的配置鼓捣所以他们两个会发挥不错相互上传过滤器,所以我还是觉得这可能是一种可能性了。
有没有使用Spring Security的任何已知的bug造成类似的问题? 是否有已知的使用Tomcat就不慎从ApplicationContext的服务错误的会话状态的问题? 有其他人遇到了类似的问题,还是有一些独特的见解呢?
编辑:发布不久后,这个我发现这一点,只公布前几天:
会议混淆-阿帕奇的httpd的mod_jk用,Tomcat的,春天的安全性-其他用户的数据服务
这几乎是完全一样的设置为我的Apache httpd的+ mod_jk的插件在Tomcat中的前面,所以我肯定是不是疯了:)
更新:
我能够重现该问题在我,而不在前面的mod_jk或Apache的开发环境,这样我就可以可靠地排除这种的罪魁祸首。