2016-05-26 14 views
1

Ich habe Grails Anwendung und Federkern Sicherheits-Plugin installiert. Ich möchte einen anderen angemeldeten Benutzer abmelden. Ich bin in der Lage, alle angemeldeten Benutzer Liste mit SessionFactory zu bekommen.Grails Logout ein anderer angemeldeter Benutzer

Hilfe benötigt.

Bitte geben Sie mir detaillierte Erklärung.

Ich folgte dieser thread, aber ich bin nicht in der Lage, nur durch Invalidierung Sitzung abzumelden.

Antwort

1

Invalidierung sollte funktionieren. Dieser Code ist Funktion 100% auf Grails 2.3.5, federsicherheits Kern: 2.0.0

def sessions = ContextListener.instance().getSessions() 
    def sessionToInvalidate = sessions.find{it.id == someId} 
    sessionToInvalidate.invalidate() 

Update: ContextListener ist nicht standart Klasse. Es ist jedoch einfach zu implementieren. Sie können sehen, wie es in App-Info grails implementiert Pluginhere

+0

Wie ich bei https://stackoverflow.com/questions/37461557/how-to-get-httpsession-from-sessionid-in-grails-application ohne die Implementierung von ContextListener kommentierte, ist dies keine sinnvolle Antwort –

+0

sessionToInvalidate.invalidate() meldet den Benutzer nicht ab. Also habe ich sessionToInvalidate.setMaxInactiveInterval (1) verwendet –

0

@Taras und @Burt Dank

Ich folgte als sie beide in dieser Antwort vorgeschlagen. Funktioniert gut.

Aber invalidate mothod nicht ungültig Sitzung und ein anderer Benutzer weiterhin Anwendung verwendet. Ich weiß nicht, warum dieses seltsame Verhalten.

Also habe ich sessionToInvalidate.setMaxInactiveInterval(1) verwendet. Und das funktioniert so, wie ich es erwartet habe.

Verwandte Themen