2016-05-26 81 views
1

我有Grails應用程序並安裝了spring security core插件。我想註銷另一個登錄用戶。 我能夠使用sessionFactory獲取所有登錄的用戶列表。Grails註銷另一個登錄用戶

需要幫助。

請給我詳細的解釋。

我跟着這thread,但是,我不能通過只是無效的會議註銷。

回答

1

無效應該起作用。 此代碼是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

+0

正如我評論在https://stackoverflow.com/questions/37461557/how-to-get-httpsession-from-sessionid-in-grails-application沒有執行'ContextListener'這不是一個有用的答案 –

+0

sessionToInvalidate.invalidate()不會註銷用戶。所以我用sessionToInvalidate.setMaxInactiveInterval(1) –

0

@Taras和@Burt 感謝

我跟着作爲你們倆在這個答案建議。工作正常。

但無效mothod不會使會話失效,而另一個用戶將繼續使用應用程序。我不知道爲什麼這個怪異的行爲。

所以我用sessionToInvalidate.setMaxInactiveInterval(1)。這和我預期的一樣。