Grails注销另一个登录用户

Grails注销另一个登录用户,grails,spring-security,logout,Grails,Spring Security,Logout,我有grails应用程序并安装了spring安全核心插件。我想注销另一个已登录的用户。 我可以使用sessionFactory获取所有登录用户列表 需要帮助 请给我详细的解释 我遵循了这一点,但是,我不能仅仅通过使会话无效而注销。无效应该有效。 这段代码100%使用Grails2.3.5,spring安全核心:2.0.0 def sessions = ContextListener.instance().getSessions() def sessionToInvalidate

我有grails应用程序并安装了spring安全核心插件。我想注销另一个已登录的用户。 我可以使用sessionFactory获取所有登录用户列表

需要帮助

请给我详细的解释

我遵循了这一点,但是,我不能仅仅通过使会话无效而注销。

无效应该有效。 这段代码100%使用Grails2.3.5,spring安全核心:2.0.0

    def sessions = ContextListener.instance().getSessions()
    def sessionToInvalidate = sessions.find{it.id == someId}
    sessionToInvalidate.invalidate()
更新:ContextListener不是标准类。然而,它很容易实现。您可以在应用程序信息grails插件中看到它是如何实现的 谢谢

我按照你们两人在回答中的建议做了。工作很好

但invalidate方法不会使会话无效,另一个用户继续使用该应用程序。我不知道为什么会有这种奇怪的行为


所以我使用了
sessioninvalidate.setMaxInactivativeInterval(1)
。正如我在没有实现
ContextListener时所评论的那样,这不是一个有用的答案SessionInvalidate。invalidate()不会注销用户。所以我使用了sessionInvalidate.setMaxInactivativeInterval(1)