我有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) –