登录后资源请求的 JSessionID 发生变化,使会话无效

JSessionID changes on resource request after login which invalidates the session

我有一个 Spring-AngularJS 应用程序。主要问题是我在登录后立即退出。这个问题只发生在少数 Firefox 版本上(例如 35.0.1)

在对该问题进行一些调查之后,我发现了以下内容:

  1. 登录后首次调用 Spring 安全性会向我们提供响应 cookie

获取/登录

请求 Cookie:BBBBBB

响应 cookie:AAAAAA

由于 /login 是重定向 (302) 到主页,下面是登录后的第一个请求

  1. 获取/#/

请求 cookie:AAAAAA

  1. 接下来,请求一些资源(例如css等)

获取/resources/abc.min.css

请求 cookie:CCCCCC

获取/resources/pqr.min.css

请求 cookie:CCCCCC

正如您在上面看到的,请求 cookie 已更新(我不知道它来自哪里)。

  1. 之后,我们请求SpringAPI获取用户信息 Spring 立即拒绝这个,因为它认为会话无效。

为了提供有关我们服务器架构的更多信息,我们在 Tomcat 7 中有我们的应用程序 WAR,它位于 Apache 服务器之后。负载均衡器位于执行负载均衡的 apache 服务器之上。

有人可以解释一下吗?任何帮助都会很棒!

谢谢!

可能导致此问题的原因之一是您混合了 secure/non-secure 内容。您的 http 请求将具有与 https 请求不同的会话 cookie。