在 grails 中,我如何获得对所有当前会话的引用?
Posted
技术标签:
【中文标题】在 grails 中,我如何获得对所有当前会话的引用?【英文标题】:In grails, how do I get a reference to all current sessions? 【发布时间】:2010-09-10 08:42:22 【问题描述】:我想在 grails 中列出管理控制器中的所有当前会话。获得参考的最简单方法是什么?来自控制器的会话集合?
【问题讨论】:
【参考方案1】:这是 App-Info 插件的一项功能(默认禁用,但可以通过在 Config.groovy 中设置 grails.plugins.appinfo.useContextListener = true
轻松启用):http://grails.org/plugin/app-info
【讨论】:
@Burt 优秀插件,我从来不知道...今天肯定会调查 看起来很有前途!但是,在安装后尝试运行时出现以下错误:“错误:由于缺少依赖项,以下插件无法加载:[appInfo] - 插件:appInfo,依赖项:[dynamicController,googleVisualization,jquery]”我找到了一些对此进行了讨论,但没有解决我的问题。所述插件均已安装并列在 application.xml 中,我删除了 .ivy2 并重新安装,但仍然出现错误...使用带有 grails 1.3.4 的 STS 2.3.3.M2。你能给我指出一些方向吗? 您是否已经在使用 dynamicController、googleVisualization 或 jquery 插件之一? 我为你的插件安装了所有这些,但是我在我的项目中只使用了jquery插件。 我在 Linux 上重新安装了所有内容,现在可以正常工作了。该插件很酷,但在 Info / Sessions 中没有列出任何会话,即使我在另一个浏览器中与另一个用户登录也是如此。这可能是什么原因?如果重要的话,我正在使用 shiro 安全性。我没有设置 grails.plugins.appinfo.useContextListener = false。【参考方案2】:有一种“groovy”方式可以在没有 SessionListener 的情况下执行此操作,生成的事件可以分配给闭包。您可以在地图/列表中捕获成功的会话,并在注销后删除会话或
Registering Callback Closures
rails.plugins.springsecurity.useSecurityEventListener = true
grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = e, appCtx ->
// handle InteractiveAuthenticationSuccessEvent
grails.plugins.springsecurity.onAbstractAuthenticationFailureEvent = e, appCtx ->
// handle AbstractAuthenticationFailureEvent
grails.plugins.springsecurity.onAuthenticationSuccessEvent = e, appCtx ->
// handle AuthenticationSuccessEvent
grails.plugins.springsecurity.onAuthenticationSwitchUserEvent = e, appCtx ->
// handle AuthenticationSwitchUserEvent
grails.plugins.springsecurity.onAuthorizationEvent = e, appCtx ->
// handle AuthorizationEvent
【讨论】:
以上是关于在 grails 中,我如何获得对所有当前会话的引用?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用spring security在grails中获取所有当前登录用户的列表(包括rememberme cookie)