0

Ich habe eine Springboot-Webanwendung mit Spring-Sicherheit, die mit LDAP-Authentifizierung integriert ist. Diese Web-App führt intern REST-Aufrufe durch. Diese REST-Aufrufe haben eine Benutzername-Passwort-Authentifizierung. Dieses Benutzername-Passwort ist das selbe, das auch von der Spring Security verwendet wird. Gibt es trotzdem ich kann das Benutzername-Passwort von Spring Security authentifiziert werden, um in den REST-Calls zu verwenden. Wenn nicht auf diese Weise, gibt es einen anderen Weg, dies zu erreichen.Verwendung des Passworts von Spring Security zur Authentifizierung des REST-Anrufs

Vielen Dank im Voraus.

Antwort

1

Es gibt eine ziemlich nette Weise, die ich denke, passen Sie Ihren Fall.

Standardmäßig speichert Spring Security das Kennwort nach der Authentifizierung nicht im Speicher. Sie müssen dies also ändern. Mit Java Config, fügen Sie in configure(AuthenticationManagerBuilder) Methode:

auth.eraseCredentials(false); 

Dann können Sie den Benutzernamen und das Passwort für den aktuellen Benutzer erhalten mit:

String username = SecurityContextHolder.getContext().getAuthentication().getName(); 
Object rawPassword = SecurityContextHolder.getContext().getAuthentication().getCredentials(); 
+0

Cool, dass die Arbeit getan hat. Vielen Dank! – Sarath

0

Die Spring-Sicherheit wird basierend auf der Regel in den Sicherheitseigenschaften ausgeführt.

Dies bedeutet, dass Sie brauchen nur feder Sicherheit, ist das einzige Problem, aktiviert haben, dass es in die nicht autorisiert Seite zu gehen, wenn nicht berechtigt, die ein Erholsamer Client nicht verstehen. Wenn jedoch der Restful-Client authentifiziert wurde und eine gültige Sitzung erhalten hat, kann er die Sicherheitsüberprüfung überspringen und auf die geschützte Seite zugreifen.

denke, ich Frühling Sicherheit wie AOP arbeitet, so dass jeder geschützten Seite hat eine Security_check Kapp-, die nur Zugriff auf die Seite erlaubt, wenn die Authentifizierung besteht.

0

Wie auch immer, ich löste das Problem eine benutzerdefinierte AuthenticationProvider schreiben, die die LDAP-Authentifizierung und erhalten das Benutzernamen-Passwort für die Zukunft REST Anrufe durchführen.

Verwandte Themen