3

我有一个基于 Grails 的 Web 应用程序,它使用 Spring Security 来处理用户登录等。我遇到了一些障碍,希望更有经验的人能够为我指出正确的解决方案方向。

该应用程序具有消息的概念,可以从用户发送到用户以提供即时消息传递功能。整个系统中都有一个定时 Ajax 调用,用于提醒用户任何新的传入消息。

我的问题是,由于我已经实现了这一点,每次执行 ajax 调用时,当然会刷新用户会话,因此永远不会超时。因此,手动“注销”是他们可以注销的唯一方式,而在会话到期之前会将他们重定向到登录页面。

有谁知道我如何仍然可以在计时器正常工作的同时完成自动注销?

我希望我可以设置某种带有弹簧安全性的过滤器,或者我可以在定期调用的方法上使用一个注释来指示它不要刷新用户会话。

一如既往地感谢任何帮助和评论。

4

1 回答 1

2

感谢 Long 用他的评论为我指明了不同的方向,我相信我现在有了一个更好、更直观的用户友好解决方案。

我没有尝试在后端进行更改,而是使用了一个非常容易配置的小 jQuery 脚本,并且非常适合我已经使用 jQuery 和 jQuery UI 的应用程序。

在特定时间后,会弹出一个 jQuery 对话框,模态地使背景变暗,并通知用户由于不活动,他们很快就会被注销。如果用户没有单击我的“继续工作”按钮,则会显示一个进度条,直到它为空,然后我将窗口位置更改为 spring 安全注销控制器 URL,将它们带回登录页面. 它工作得很好,而且很容易配置。

说明可以在这里找到:http: //kenbrowning.blogspot.co.uk/2010/04/are-you-still-there.html

感谢 Ken Browning 的图书馆。

于 2012-06-07T11:43:33.103 回答