331 votes

Différence entre le rôle et l'autorité accordée dans Spring Security

Il existe des concepts et des implémentations dans Spring Security, tels que l'interface GrantedAuthority pour obtenir une autorité afin d'autoriser/contrôler un accès.

J'aimerais que des opérations permises, telles que createSubUsers ou deleteAccounts, soient autorisées à un admin (avec le rôle ROLE_ADMIN).

Je suis confus à cause des tutoriels/démos que je vois en ligne. J'essaie de connecter ce que je lis, mais je pense que nous traitons les deux de manière interchangeable.

Je vois que hasRole consomme une chaîne GrantedAuthority

Comment puis-je stocker le rôle d'un utilisateur, séparément des autorités pour ce rôle?

``

Je regarde aussi l'interface org.springframework.security.core.userdetails.UserDetails qui est utilisée dans l'authentification-provider DAO référencée, qui consomme un User (notez la dernière GrantedAuthority):

public User(String username, 
            String password, 
            boolean enabled, 
            boolean accountNonExpired,
            boolean credentialsNonExpired, 
            boolean accountNonLocked, 
            Collection authorities)

Y a-t-il une autre façon de différencier les deux? Ou n'est-ce pas pris en charge et devons-nous créer le nôtre?

``

0voto

Darshan Points 75

De manière simple, nous pouvons dire que le rôle est un ensemble d'autorisations telles que ROLE_ADMIN qui ont une autorisation privilégiée telle que READ, WRITE, etc.

Alors que l'autorité accordée est une autorisation individuelle

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X