我有Grails应用程序并安装了spring security core插件。我想注销另一个登录用户。 我能够使用sessionFactory获取所有登录的用户列表。Grails注销另一个登录用户
需要帮助。
请给我详细的解释。
我跟着这thread,但是,我不能通过只是无效的会议注销。
我有Grails应用程序并安装了spring security core插件。我想注销另一个登录用户。 我能够使用sessionFactory获取所有登录的用户列表。Grails注销另一个登录用户
需要帮助。
请给我详细的解释。
我跟着这thread,但是,我不能通过只是无效的会议注销。
无效应该起作用。 此代码是Grails的2.3.5 100%的工作,弹簧安全核心:2.0.0
def sessions = ContextListener.instance().getSessions()
def sessionToInvalidate = sessions.find{it.id == someId}
sessionToInvalidate.invalidate()
更新:ContextListener不是非标准类。但是,它很容易实现。你可以看到它是如何在应用信息的Grails实现插件here
@Taras和@Burt 感谢
我跟着作为你们俩在这个答案建议。工作正常。
但无效mothod不会使会话失效,而另一个用户将继续使用应用程序。我不知道为什么这个怪异的行为。
所以我用sessionToInvalidate.setMaxInactiveInterval(1)
。这和我预期的一样。
正如我评论在https://stackoverflow.com/questions/37461557/how-to-get-httpsession-from-sessionid-in-grails-application没有执行'ContextListener'这不是一个有用的答案 –
sessionToInvalidate.invalidate()不会注销用户。所以我用sessionToInvalidate.setMaxInactiveInterval(1) –