Maison >Java >javaDidacticiel >Spring Security : Pourquoi mes multiples configurations HTTP ne fonctionnent-elles pas ?

Spring Security : Pourquoi mes multiples configurations HTTP ne fonctionnent-elles pas ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-02 12:14:10219parcourir

Spring Security: Why Aren't My Multiple HTTP Configurations Working?

Spring Security : plusieurs configurations HTTP ne fonctionnent pas

Cet article explore un problème de sécurité Spring dans lequel plusieurs configurations HTTP ne fonctionnent pas comme prévu.

Problème

Un développeur a tenté d'établir différentes pages de connexion et URL protégées définit des ensembles utilisant plusieurs classes WebSecurityConfigurerAdapter et a rencontré un problème d'implémentation. La sécurité d'un groupe de modèles d'URL fonctionnait correctement, mais l'autre groupe n'était pas sécurisé, ce qui n'entraînait aucune redirection vers la page de connexion.

Solution

À Pour résoudre ce problème, le développeur devait garantir le bon ordre d'exécution des configurations WebSecurityConfigurerAdapter. Spring Security traite les configurations dans l'ordre dans lequel elles sont déclarées. Dans ce cas, la première configuration restreignait l'accès uniquement à un modèle d'URL spécifique (/admin/), tandis que la seconde configuration visait à sécuriser toutes les autres URL. Cependant, comme la première configuration correspondait à toutes les URL (/), elle avait priorité et empêchait effectivement l'application de la deuxième configuration.

Configuration appropriée

@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/**

}

En attribuant une valeur @Order de 2 à la configuration ConsumerSecurity, nous nous assurons qu'elle est traitée après la configuration ProviderSecurity. De cette façon, il peut restreindre l'accès aux URL /consumer/** comme prévu.

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