Ich habe ein Problem mit dem Standardverhalten in der Spring-Sicherheit mit Autorisierungsanfragen, die mit Java Config bereitgestellt werden.
%Vor% Wenn ich zum Beispiel /api/test/secured/user
ohne Login (mit anonymen Benutzer) anrufe, wird 403 Forbidden zurückgegeben. Gibt es eine einfache Möglichkeit, den Status in 401 Nicht autorisiert zu ändern, wenn ein anonymer Benutzer durch authenticated()
oder @PreAuthorize
resource gesichert werden möchte?
Mit Federsicherheit 4.x gibt es bereits eine Klasse dafür
%Vor%Spring boot enthält auch einen
%Vor%und beide Vorteile, die der Entwickler benötigt, um spezifikationskonforme 401-Antworten zu verwenden, erfordert dies Header WWW-Authenticate muss gesetzt sein, Beispiel 401 Antwort könnte sein:
%Vor%In Ihrer Sicherheitskonfiguration definieren und initialisieren Sie eine Bean der Klasse
So zum Beispiel mit Spring-Boot-App:
%Vor%Die relevante Zeile ist:
%Vor% Sie müssen AuthenticationEntryPoint
erweitern, um Anpassungen basierend auf den Ausnahmen vorzunehmen.
Geben Sie den obigen benutzerdefinierten AuthenticationEntryPoint in Ihrer SecurityConfig wie folgt an:
%Vor%Tags und Links java spring spring-security spring-boot