2013-01-14 80 views
1

我在我的grails应用程序中使用spring安全核心。我的应用程序有很多调用控制器的ajax调用。控制器依次取决于某些会话变量来完成请求。我目前能够在会话超时时正确显示ajax登录表单。但是,它仅创建新创建的用户对象的新会话。存储在会话中的所有其他对象都将丢失。Grails Spring Security - 在会话超时后重新登录会话变量

在会话超时后用户重新登录后,是否有重新加载会话变量的方法?

+2

这与Spring Security完全没有关系。你是容器正在破坏会话。缺少用户对象是触发弹簧安全性告诉你的原因,你需要重新登录。如果您不想丢失会话数据,请将其保存到数据库/ cookie中。 – Gregg

+2

会话范围的目的是在会话结束时擦除它。如果您需要在会话之间共享数据,则应重新考虑架构并将数据保存在数据库(服务器端)或cookie(客户端)中。 – moeTi

+0

感谢Gregg和moeTi。你们让我以正确的方向思考。由于我只在会话中加入了一些变量,所以我不妨将它们作为全局ajax设置的一部分,并将它们放入每个请求中,从而有效地使我的应用程序无状态。由于现在我们的任何服务器都可以处理请求,因此该体系结构将具有负载平衡器友好的另一个好处。 – Abhay

回答

0

会话范围的目的是在会话结束时擦除它。如果您需要共享会话之间的数据,你应该重新考虑你的架构,并坚持在一个数据库(服务器端)的数据,或者一个Cookie(客户端)

(从评论搬进一个答案)