Ich habe eine Grails 2.5.3-App, die zur Authentifizierung derzeit ein Spring-Security-Plugin verwendet. Benutzer melden sich mit einem Benutzernamen / pwd an.
Ich habe die App jetzt aktualisiert, um die OAuth-Authentifizierung (mit ScribeJava) zu unterstützen. Benutzer können auf einen Link klicken, der sie an die OAuth-Anbieter-Seite weiterleitet, und bei erfolgreicher Eingabe der Anmeldeinformationen werden sie zurück an meine Anwendung weitergeleitet. Allerdings war ich nicht in der Lage, diese Funktionalität mit Spring Security Plugin zu verknüpfen, so dass ich, wenn die Benutzer zurück zu meiner App (nach erfolgreichem Login von OAuth) umgeleitet werden, sehe, dass sie angemeldet sind und weiterhin alle meine Feder verwenden Sicherheitsgoodies wie <sec:ifLoggedIn>
.
Kennt jemand einen Weg, dies zu tun oder ein Beispiel zu haben, das ich mir ansehen kann?
So authentifiziere ich einen Benutzer mit OAuth:
%Vor% Wenn Sie sich über OAuth
authentifizieren, gibt der Remote-Server jedes Mal unique id (some numeric value)
zurück.
Sie können diesen id
verwenden, um den Benutzer an Ihrem Ende zu verifizieren und den Benutzer mit springsecurity.reauthenticate()
method zu authentifizieren.
Schritte, um das zu tun:
unique id
. Speichere das unique id
in
Benutzertabelle. unique id
. Prüfe ob unique id
in deinem System existiert,
und wenn der Benutzer mit dieser eindeutigen ID existiert, dann benutze
springsecurity.reauthenticate(userInstance)
Methode, um den Benutzer zu authentifizieren. Und jetzt können Sie Sicherheitsfunktionen für den Frühling nutzen. Check-out-Link: Ссылка
Angenommen, Sie haben die Benutzerdetails vom Oauth-Anbieter, die Sie nur brauchen Legen Sie den Sicherheitskontext dieses bestimmten Benutzers fest
Holen Sie sich einfach die Benutzerdetails, indem Sie den JSON wie
analysieren %Vor%In unserem Fall haben wir die E-Mail-ID als Benutzernamen verwendet.
Wenn wir die Benutzerdaten erhalten, überprüfen Sie einfach, ob der Benutzer bereits mit dem System registriert ist oder nicht wie folgt:
%Vor%Nachdem der Benutzer erfolgreich registriert wurde, müssen wir nur seinen Kontext wie folgt laden
%Vor%Sobald der Sicherheitskontext für den Frühling geladen ist, können Sie den Nutzer auf Ihre Zielseite weiterleiten.
Nun wird ein oauth-Benutzer auf Ressourcen wie jeder andere Benutzer mit derselben Rolle zugreifen.
Tags und Links grails oauth spring-security spring-security-oauth2 grails-plugin