Heim  >  Artikel  >  Java  >  Wie rufe ich den aktuellen Benutzer in Spring-Anwendungen ab?

Wie rufe ich den aktuellen Benutzer in Spring-Anwendungen ab?

Linda Hamilton
Linda HamiltonOriginal
2024-11-06 10:18:02873Durchsuche

How to Retrieve the Current User in Spring Applications?

Abrufen aktiver Benutzerdetails

Beim Zugriff auf den aktuell authentifizierten Benutzer innerhalb von Controller-Methoden erforderte das Erhalten der UserDetails-Implementierung traditionell den Zugriff auf den Kontext und die Umwandlung der Prinzipal zu einem Benutzerobjekt.

WebArgumentResolver-Lösung

Für einen eleganteren Ansatz sollten Sie die Implementierung eines WebArgumentResolvers in Betracht ziehen, der die Verantwortung für die Auflösung von Benutzerobjekten übernimmt, die mit einer benutzerdefinierten Anmerkung versehen sind. wie zum Beispiel @ActiveUser. Dieser Resolver kann den Benutzer bedingt zurückgeben, basierend auf dem Vorhandensein der Annotation und dem Typ des Methodenarguments.

Spring 3.1-Lösung: HandlerMethodArgumentResolver

Bei Verwendung von Spring 3.1 oder später wird ein HandlerMethodArgumentResolver bevorzugt. Es unterstützt die Überprüfung auf die @ActiveUser-Annotation und die Rückgabe des Benutzers, wenn Bedingungen erfüllt sind.

Spring Security 3.2-Lösung: @AuthenticationPrincipal

Spring Security 3.2 führte die @AuthenticationPrincipal-Annotation ein , was den Prozess vereinfacht, indem es die direkte Injektion des Benutzerobjekts in Controller-Methoden ermöglicht. Um diese Annotation zu verwenden, registrieren Sie den AuthenticationPrincipalArgumentResolver in der Spring-Konfiguration.

Für ältere Versionen von Spring Security:

Wenn Sie eine frühere Version von Spring Security verwenden oder eine benutzerdefinierte Version bevorzugen Für diesen Ansatz sollten Sie die Implementierung der oben beschriebenen WebArgumentResolver-Lösung in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie rufe ich den aktuellen Benutzer in Spring-Anwendungen ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn