Heim >Java >javaLernprogramm >Warum funktioniert meine Spring Security-Konfiguration mit mehreren HTTP-Konfigurationen nicht?

Warum funktioniert meine Spring Security-Konfiguration mit mehreren HTTP-Konfigurationen nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 18:05:17680Durchsuche

Why Doesn't My Spring Security Configuration with Multiple HTTP Configurations Work?

Spring Security: Mehrere HTTP-Konfigurationen funktionieren nicht

Es kann vorkommen, dass mehrere HTTP-Konfigurationen für maßgeschneiderte Anmeldeseiten und sichere URLs erforderlich sind Zugriff, wie das folgende Szenario zeigt:

@Configuration
@Order(1)
public static class ProviderSecurity extends WebSecurityConfigurerAdapter {
    // Security configuration for admin/* routes
}

@Configuration
@Order(2)
public static class ConsumerSecurity extends WebSecurityConfigurerAdapter {
    // Security configuration for consumer/* routes
}

Dieser Ansatz kann jedoch zu Diskrepanzen führen, wenn nur eine Konfiguration aktiv ist. Um dieses Problem zu beheben, lesen Sie das Spring Security-Referenzhandbuch:

@EnableWebSecurity
public class MultiHttpSecurityConfig {
    // Authentication configuration

    @Configuration
    @Order(1)
    public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
        // Security configuration for /api/* routes
    }

    @Configuration
    public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
        // Security configuration for all other routes
    }
}

Wichtige Punkte:

  • Konfigurieren Sie die Authentifizierung wie gewohnt.
  • Geben Sie die Verarbeitungsreihenfolge mehrerer an Konfigurationen mit @Order.
  • Verwenden Sie antMatcher, um den Umfang bestimmter Konfigurationen basierend auf der URL einzuschränken Muster.

Im vorherigen Beispiel tritt das Problem auf, weil die erste Konfiguration mit /antMatcher (die alle URLs abgleicht) die zweite Konfiguration überschreibt, was dazu führt, dass die URLs der zweiten Konfiguration nicht gesichert sind. Durch die Beschränkung des Bereichs der ersten Konfiguration auf nur /admin/ können die URLs der zweiten Konfiguration geeignete Sicherheitsmechanismen erhalten.

Das obige ist der detaillierte Inhalt vonWarum funktioniert meine Spring Security-Konfiguration mit mehreren HTTP-Konfigurationen nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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