脚本
- 我重新启动服务器和浏览器,因此没有会话数据.
- 我去www.someurl.com公共访问页面.我的控制器让我得到一个会话
HttpSession session=request.getSession(true);
- 我点击www.someurl.com/admin限制访问页面的飞机锚点链接,该页面将在新选项卡中打开.Spring Security 3拦截了这一点并对凭证提出了挑战.我成功登录.
- 我将通过www.someurl.com返回上一个选项卡并刷新页面.
问题
我在www.someurl.com的控制器中注意到,会话ID在步骤2和步骤4中是不同的.看起来Spring Security创建了一个新会话,该会话现在附加到公共页面请求.为什么会发生这种情况,我是否可以强制Spring Security使用现有会话?
追踪的场景
- 重新启动浏览器和服务器,因此不存在会话数据.
- 我去www.someurl.com.控制器已注入请求.request.session为null.getSession(true)给我一个id为87B091B12F38D44C53AF0DA9E2147484的会话.LogService获取请求对象并且也执行getSession(true)但是获取了具有id 87B091B12F38D44C53AF0DA9E2147484的会话,所以到目前为止一切都很好.
- 我点击/ admin.页面在新选项卡中打开.我登录
- 我刷新www.someurl.com.控制器已注入请求.request.session不为空.会话ID为547DF59035C91783D783BAEF4A15FBFF.