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!