Spring Security anonym 401 statt 403

8

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?

    
Mati 04.06.2015, 11:47
quelle

3 Antworten

5

Ich habe eine Lösung hier :

%Vor%

AuthenticationEntryPoint-Quellcode:

%Vor%     
Meiblorn 04.06.2015, 12:07
quelle
13

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%     
le0diaz 20.04.2016 21:37
quelle
0

Sie müssen AuthenticationEntryPoint erweitern, um Anpassungen basierend auf den Ausnahmen vorzunehmen.

%Vor%

Geben Sie den obigen benutzerdefinierten AuthenticationEntryPoint in Ihrer SecurityConfig wie folgt an:

%Vor%     
Sahil Chhabra 27.11.2017 09:20
quelle