Heim > Java > javaLernprogramm > Wie behebe ich Fehler bei mehreren HTTP-Konfigurationen in Spring Security, wenn nur eine funktioniert?

Wie behebe ich Fehler bei mehreren HTTP-Konfigurationen in Spring Security, wenn nur eine funktioniert?

DDD
Freigeben: 2024-12-04 19:29:12
Original
182 Leute haben es durchsucht

How to Troubleshoot Multiple HTTP Configs in Spring Security When Only One Works?

Mehrere HTTP-Konfigurationen in Spring Security: Fehlerbehebung

Sie stoßen auf ein Problem bei der Verwendung mehrerer HTTP-Konfigurationen in Spring Security, insbesondere bei der Sicherung verschiedener URLs und Anmeldeseiten. Hier ist eine Aufschlüsselung des Problems und seiner Lösung:

Problem:
Sie haben zwei HTTP-Konfigurationen konfiguriert, eine für den Administratorzugriff und die andere für den Verbraucherzugriff. Es funktioniert jedoch nur die Administratorsicherheit, während die Seiten unter /consumer/** ungesichert bleiben und keine Anmeldeweiterleitungen erfolgen.

Lösung:
Um dieses Problem zu lösen, ist Verständnis der Schlüssel die Reihenfolge der Auswertung in Spring Security:

  1. Authentifizierungsverwaltung: AuthenticationManagerBuilder für Benutzer konfigurieren Anmeldeinformationen.
  2. Mehrere HTTP-Sicherheitskonfigurationen:

    • Erstellen Sie mehrere innere Klassen, die WebSecurityConfigurerAdapter erweitern, jede mit ihrer eigenen @Order-Annotation zur Angabe der Priorität.
    • Verwenden Sie antMatcher, um die Anwendbarkeit der einzelnen Elemente einzuschränken HttpSecurity-Konfiguration für bestimmte URLs.
  3. URL-Priorität:

    • Die HttpSecurity-Konfiguration mit dem höchsten @Order-Wert (oder ein Standardwert von „last“) wird zuerst angewendet.
    • Wenn kein antMatcher vorhanden ist angegeben, gilt die Konfiguration für alle URLs (/**).
  4. Konfigurationsstruktur:

    • Die erste Die Konfiguration stimmt in Ihrem Fall mit allen URLs (/**) überein, was bedeutet, dass alle Anfragen abgefangen werden.
    • Da es nur sichert /admin/, andere URLs (einschließlich /consumer/) sind implizit erlaubt.
    • Die zweite Konfiguration wird somit nie erreicht.

Um das Problem zu beheben, stellen Sie sicher, dass die Consumer-Sicherheitskonfiguration zuerst ausgewertet wird, indem Sie ihr einen höheren @Order-Wert zuweisen. Geben Sie außerdem den antMatcher für beide Konfigurationen an, um deren Anwendbarkeit auf die gewünschten URLs zu beschränken.

Durch Befolgen dieser Schritte können Sie mehrere HTTP-Sicherheitskonfigurationen effektiv konfigurieren und verschiedene URL-Gruppen in Ihrer Spring Security-Anwendung sichern.

Das obige ist der detaillierte Inhalt vonWie behebe ich Fehler bei mehreren HTTP-Konfigurationen in Spring Security, wenn nur eine funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage