【发布时间】:2013-09-18 13:52:19
【问题描述】:
我正在开发允许用户以访客身份执行某些操作的应用程序。结果存储在会话中。我想将访客会话中的数据注入经过身份验证的用户会话。例如:
- 来宾用户在购物车中添加东西等
- 用户决定进行身份验证
- 身份验证购物车从上一个会话恢复后(即在它们之间传递)
有没有一个地方可以让新旧用户会话将属性从一个复制到另一个?
【问题讨论】:
-
你控制你的登录逻辑吗? IE。你有登录控制器吗?
-
不,身份验证是通过外部身份验证提供程序完成的。
-
似乎应该通过将会话固定策略设置为“无”来解决,但它已经设置为“无”。
-
我不知道具体的 Spring 安全方式来执行此操作,但您可以创建一个 servlet
Filter将会话中的属性复制到请求属性中。然后 Spring 让你登录,当过滤器返回时,它会将它们复制回来。 -
禁用会话固定保护会降低您的应用程序的安全性。你试过
<session-management session-fixation-protection="migrateSession"/>吗?
标签: java servlets spring-mvc spring-security