【问题标题】:Prevent session refresh by ajax call (grails)通过ajax调用防止会话刷新(grails)
【发布时间】:2012-06-10 11:23:04
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 嗨,戴夫,好问题。这个问题可能会对你有一些新的想法:stackoverflow.com/questions/2691593/…
  • 谢谢。那里有有用的信息。
  • 不客气 :) 。顺便说一句,我的名字是龙。在我的语言中,将名字放在“last”是很自然的 :)

标签: grails spring-security


【解决方案1】:

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

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

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

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

感谢 Ken Browning 的图书馆。

【讨论】:

    猜你喜欢
    • 2016-07-31
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2023-03-20
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多