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
Mary-Kate Olsenoriginal
2024-11-29 18:05:17757parcourir

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
}

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
    }
}

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