So binden Sie die OAuth-Authentifizierung mit Spring Security

8

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%     
Anthony 12.03.2017, 19:23
quelle

2 Antworten

1

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:

  1. Wenn Benutzer eine Verbindung zum Dienstanbieter herstellen (zum ersten Mal authentifizieren). Der Serviceanbieter sendet Ihnen unique id . Speichere das unique id in Benutzertabelle.
  2. Und wenn der Benutzer sich über diesen Dienstanbieter anmeldet. Wieder Dienstleister sendet das 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: Ссылка

    
Bipul Kumar 17.03.2017 07:52
quelle
0
  

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.

    
Prakash Thete 17.03.2017 09:06
quelle