Grails注销另一个登录用户
我有grails应用程序并安装了spring安全核心插件。我想注销另一个已登录的用户。 我可以使用sessionFactory获取所有登录用户列表 需要帮助 请给我详细的解释 我遵循了这一点,但是,我不能仅仅通过使会话无效而注销。无效应该有效。 这段代码100%使用Grails2.3.5,spring安全核心:2.0.0Grails注销另一个登录用户,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
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)