Maison > Java > javaDidacticiel > Pourquoi ma configuration de sécurité Spring avec plusieurs configurations HTTP ne fonctionne-t-elle pas ?

Pourquoi ma configuration de sécurité Spring avec plusieurs configurations HTTP ne fonctionne-t-elle pas ?

Mary-Kate Olsen
Libérer: 2024-11-29 18:05:17
original
774 Les gens l'ont consulté

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

Spring Security : plusieurs configurations HTTP ne fonctionnent pas

On peut rencontrer une situation où plusieurs configurations HTTP sont souhaitées pour des pages de connexion personnalisées et une URL sécurisée accès, comme le démontre le scénario suivant :

@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
}
Copier après la connexion

Cependant, cette approche peut conduire à des écarts lorsqu'une seule configuration est active. Pour résoudre ce problème, reportez-vous au guide Spring Security Reference :

@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
    }
}
Copier après la connexion

Points clés :

  • Configurez l'authentification comme d'habitude.
  • Spécifiez l'ordre de traitement de plusieurs configurations à l'aide de @Order.
  • Utilisez antMatcher pour limiter la portée de configurations spécifiques en fonction de l'URL modèles.

Dans l'exemple précédent, le problème se pose car la première configuration avec /antMatcher (qui correspond à toutes les URL) remplace la deuxième configuration, ce qui entraîne que les URL de la deuxième configuration ne sont pas sécurisées. En limitant la portée de la première configuration à /admin/ uniquement, les URL de la deuxième configuration peuvent bénéficier de mécanismes de sécurité appropriés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal