2017-01-19 7 views
1

Ich setze das Sicherheitssystem auf mein Projekt (Grails - Angularjs) mit Spring Security Rest Plugin v1.5.4 (mit Feder Sicherheit Kern 2.0.0) für Grails 2.4.4 . Doc über dieses Plugin finden Sie here.404 wenn Logout in Spring Security Rest Plugin für Grails

Ich teste die Anmeldung und Abmeldung mit Postman Chrome Rest Client und ich bin in der Lage, eine Anmeldung zu machen OK, aber ich bekomme einen 404, wenn ich mich abmelden.

In der Dokumentation deutlich sagt:

Die Logout-Filter einen Endpunkt zum Löschen Token aussetzt. Es wird lesen Sie das Token aus einem HTTP-Header. Wenn es gefunden wird, wird es aus dem Speicher gelöscht und sendet eine Antwort von 200. Ansonsten wird es

eine 404 Antwort

senden Sie können es in Config.groovy konfigurieren, dass diese Eigenschaften mit:

Config Schlüssel ................. .................................................. ................ Standard Wert

grails.plugin.springsecurity.rest.logout.endpointUrl .............. ......../api/logout grails.plugin.springsecurity.rest.token.validation.headerName .... X-Auth-Token

So

, nach einem Login erfolgreich tun, habe ich versucht, eine Abmeldung zu dieser URL zu tun (my_host_url/api/Logout) mit einer GET-Methode und das Senden einem Header X-Auth-Token mit dem Token I habe vorher von login bekommen.

Aber ich erhalte immer ein 404. Siehe Bild unten

enter image description here

bearbeiten: Ich bin die Kette Karte wie diese Einstellung (um ein stateless Verhalten zu bekommen):

So. Was mache ich hier falsch oder was vermisse ich?

Vielen Dank im Voraus!

+0

können Sie bieten Ihren Code für die Methode „Logout“, ich denke, Ressourcenzuordnung fehlt entweder „get“ -Methode oder richtigen „Weg“ – devbd

+0

@devbd, vielen Dank für Ihre Antwort! Eigentlich habe ich keine Logout-Methode implementiert. Ich dachte, das Plugin fügte dies implizit als Login-Methode hinzu. Ist das korrekt? – lealceldeiro

+0

überprüfen Sie bitte plugin Standard-Login-URL. Ich denke, sollte die URL nur „/ Logout“ .. – devbd

Antwort

1

Sie haben einen weiteren Auszug aus der Dokumentation verpasst. Es handelt sich um eine Warnmeldung, die buchstäblich vor dem von Ihnen angegebenen Chunk steht. Sie lautet:

Abmelden ist nicht möglich, wenn JWT-Tokens (die Standardstrategie) verwendet werden, da auf dem Server kein Status gespeichert ist.

Wenn Sie sich immer noch abmelden möchten, können Sie Ihre eigene Implementierung bereitstellen, indem Sie eine Unterklasse von JwtTokenStorageService erstellen und die Methoden storeToken und removeToken überschreiben. Dann registrieren Sie Ihre Implementierung in resources.groovy als tokenStorageService.

+0

Vielen Dank für Ihre Antwort! Ja, in der Tat, dass mir ziemlich klar ist ... aber ich dachte, das Teil „' Die Logout-Filter einen Endpunkt zum Löschen tokens' aussetzt“(ich glaube, dieser Endpunkt:/api/Logout) bedeutet, dass wir, dass die URL mit einem anrufen Header (X-Auth-Token), der das Authentifizierungs-Token bereitstellt, und es würde das Token von den aktiven Token auf dem Serverspeicher oder etwas ähnlichem entfernen. Ist das korrekt? ... oder es bedeutet, dass wir * unbedingt * eine Unterklasse von 'JwtTokenStorageService' implementieren müssen, wenn wir uns vom Server abmelden wollen? Übrigens, danke für dieses Plugin! ;) – lealceldeiro

Verwandte Themen