Heim >Java >javaLernprogramm >Spring Security: Warum funktionieren meine mehreren HTTP-Konfigurationen nicht?
Spring Security: Mehrere HTTP-Konfigurationen funktionieren nicht
In diesem Artikel wird ein Spring Security-Problem untersucht, bei dem mehrere HTTP-Konfigurationen nicht wie erwartet funktionieren.
Problem
Ein Entwickler hat versucht, verschiedene Anmeldeseiten und geschützte URL-Sätze einzurichten Bei der Verwendung mehrerer WebSecurityConfigurerAdapter-Klassen ist ein Implementierungsproblem aufgetreten. Die Sicherheit für eine Gruppe von URL-Mustern funktionierte ordnungsgemäß, die andere Gruppe wurde jedoch nicht gesichert, was zu keiner Umleitung zur Anmeldeseite führte.
Lösung
An Um dieses Problem zu lösen, musste der Entwickler die richtige Ausführungsreihenfolge für die WebSecurityConfigurerAdapter-Konfigurationen sicherstellen. Spring Security verarbeitet Konfigurationen in der Reihenfolge, in der sie deklariert werden. In diesem Fall beschränkte die erste Konfiguration den Zugriff nur auf ein bestimmtes URL-Muster (/admin/), während die zweite Konfiguration darauf abzielte, alle anderen URLs zu sichern. Da jedoch die erste Konfiguration mit allen URLs (/) übereinstimmte, hatte sie Vorrang und verhinderte effektiv die Anwendung der zweiten Konfiguration.
Richtige Konfiguration
@Configuration @Order(1) public static class ProviderSecurity extends WebSecurityConfigurerAdapter { // Configure security for /admin/** } @Configuration @Order(2) public static class ConsumerSecurity extends WebSecurityConfigurerAdapter { // Configure security for /consumer/** }
Indem wir der ConsumerSecurity-Konfiguration einen @Order-Wert von 2 zuweisen, stellen wir sicher, dass diese nach der ProviderSecurity-Konfiguration verarbeitet wird. Auf diese Weise kann der Zugriff auf die /consumer/**-URLs wie vorgesehen eingeschränkt werden.
Das obige ist der detaillierte Inhalt vonSpring Security: Warum funktionieren meine mehreren HTTP-Konfigurationen nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!