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!