Verwendung mehrerer WebSecurityConfigurerAdapter mit verschiedenen AuthenticationProvidern (Basisauthentifizierung für API und LDAP für Webanwendung)

8

Laut Spring Security Reference Abschnitt 5.7 sollte dies geschehen möglich sein, mehr als einen Sicherheitsadapter zu definieren.

Ich versuche dasselbe zu tun, aber ohne Erfolg. Nach einem Serverneustart funktioniert das erste x-fache der API einwandfrei mit basic auth, aber nach ein paar mal werde ich auf die Login (Formular) -Seite umgeleitet, dies sollte nur für unsere Web-App passieren, nicht für die API-Aufrufe.

Mein Code:

%Vor%

Irgendeine Idee?

Ich verwende Spring Boot Version 1.4.1-RELEASE und Spring Security Version 4.1.3-RELEASE.

    
Dimi 26.10.2016, 09:32
quelle

1 Antwort

2

Sie verwenden dasselbe AuthenticationManager für beide Konfigurationen, da Sie das selbe AuthenticationManagerBuilder .

Siehe Spring Security Architecture :

%Vor%      

Dieses Beispiel bezieht sich auf eine Webanwendung, aber die Verwendung von AuthenticationManagerBuilder ist in größerem Umfang anwendbar (weitere Informationen zur Implementierung der Webanwendungssicherheit finden Sie weiter unten). Beachten Sie, dass AuthenticationManagerBuilder @Autowired für eine Methode in @Bean ist. Dies ist der Grund, warum der globale (übergeordnete) AuthenticationManager erstellt wird. Im Gegensatz, wenn wir es so gemacht hätten:

%Vor%      

(mit @Override einer Methode im Konfigurator), dann wird AuthenticationManagerBuilder nur verwendet, um eine "lokale" AuthenticationManager zu erstellen, die ein Kind der globalen ist.

    
dur 26.10.2016, 14:46
quelle