我在 grails 中有一个应用程序,使用 spring-security 进行用户和角色管理。因为,过去几天我面临一个奇怪的问题:当一个用户在某个时候登录时,用户变成了另一个用户(会话混合)。
示例:用户 A 登录系统,用户 B 从另一个浏览器登录系统,当通过控制器动作移动时,用户 A 在某个随机点成为用户 A 系统中的用户 B,用户 B 也一样。
此问题在生产中,而不是在开发中。
我在互联网上发现了一些类似的案例,但没有一个 grails。 Tomcat 上的 Spring Security/JSF/Hibernate 意外会话劫持?,这个类似的但在 jsf 和提到的解决方案中似乎对我不起作用。另一个是会话混合 - apache httpd 与 mod_jk、tomcat、spring security - 为其他用户提供数据但这里的问题似乎是因为 mod_jk 对我来说不是这种情况(我没有使用 mod_jk)。
我的系统版本:
- Grails 版本:3.2.4
- Groovy 版本:2.4.7
- JVM版本:1.8.0_05
- 服务器版本:Apache Tomcat/8.5.14
- JVM版本:1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13