Wie kann ich die Basisauthentifizierung mit JWT-Authentifizierung im Spring Boot implementieren?

9

Ich habe eine Spring-Boot -Anwendung erstellt, die mit jwt authentication arbeitet.

%Vor%

Ich möchte eine grundlegende Authentifizierung haben, wenn ich Swagger verwende Ich möchte ein Popup mit haben, wenn ich auf die Schaltfläche Try Out

klicke

Zum Beispiel:

Wie können zwei Sicherheitsfilter (Formularbasis, JWT-Token) der Federsicherheit auf demselben Endpunkt verwendet werden?

WebSecurityConfig

%Vor%

TokenAuthenticationService

%Vor%

JWTLoginFilter

%Vor%

JWTAuthenticationFilter

%Vor%

AccountCredentials

%Vor%     
Mercer 01.06.2017, 08:34
quelle

1 Antwort

6

Sie müssen zwei verschiedene WebSecurityConfigurerAdapter -Konfigurationen mit verschiedenen Root-URLs erstellen. Wenn sich die URLs überschneiden (dh /admin and /** ), müssen Sie die Priorität definieren, indem Sie @Order annotation für die Konfiguration verwenden.

Hier ist ein funktionierendes Beispiel für HTTP Basic und Form-basierte Authentifizierung.

Ссылка

%Vor%

Hinweis: Da diese Anmeldeseiten nicht von verschiedenen Anwendungen stammen, teilen sie sich den SecurityContextHolder oder den Sicherheitskontext. Wenn Sie sich also von einer Anmeldeseite aus anmelden und dann versuchen, die geschützte Ressource der anderen Seite aufzurufen, werden Sie nicht zur nächsten Anmeldeseite weitergeleitet. Stattdessen erhalten Sie den 403 (abhängig von den Rollen, die auf den verschiedenen Anmeldeseiten zugewiesen sind). Zu einer Zeit kann nur eine Login-Sitzung aufrechterhalten werden.

    
11thdimension 08.06.2017, 16:10
quelle