Maison >Java >javaDidacticiel >Comment trier correctement les correspondants de requêtes dans Spring Security pour le contrôle d'accès basé sur les rôles ?

Comment trier correctement les correspondants de requêtes dans Spring Security pour le contrôle d'accès basé sur les rôles ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 04:16:10262parcourir

How to Correctly Order Request Matchers in Spring Security for Role-Based Access Control?

Correction de la gestion des rôles dans Spring Security

Votre problème avec le contrôle d'accès basé sur les rôles dans Spring Security découle de l'ordre de vos correspondants de requêtes. Le correspondant pour toute demande doit venir après des correspondants spécifiques basés sur des rôles.

Pour résoudre ce problème et restreindre l'accès administrateur, modifiez votre configuration comme suit :

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .csrf().disable()      
        .httpBasic()
            .and()
        .authorizeRequests()
            .antMatchers("/users/all").hasRole("admin")
            .anyRequest().authenticated() // Moved after role-based matcher
            .and()
        .formLogin()
            .and()
        .exceptionHandling().accessDeniedPage("/403");
}

Avec cette configuration, les demandes à / users/all nécessitera le rôle d'administrateur, tandis que toutes les autres demandes nécessiteront n'importe quel utilisateur authentifié.

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