Je ne sais pas quelle est la différence de sécurité du ressort entre:
@PreAuthorize("hasRole('ROLE_USER')")
public void create(Contact contact)
Et
@Secured("ROLE_USER")
public void create(Contact contact)
Je comprends que PreAuthorize peut fonctionner avec spring el mais dans mon échantillon, y a-t-il une vraie différence?
spring-security
Jérôme VDL
la source
la source
Si vous vouliez faire quelque chose comme accéder à la méthode uniquement si l'utilisateur a Role1 et Role2, vous devrez utiliser @PreAuthorize
En utilisant
la source
Simplement,
@PreAuthorize
est plus récent que@Secured
.Je dis donc qu'il est préférable de l'utiliser
@PreAuthorize
car il est "basé sur une expression" et que vous pouvez utiliser des expressions comme hasRole, hasAnyRole, permitAll, etc.Pour en savoir plus sur les expressions, consultez ces exemples d'expressions .
la source
@PreAuthorize
est différent, il est plus puissant que@Secured
.vous ne pouvez donc pas exprimer la condition AND en utilisant
la source
"hasRole('ADMIN OR hasRole('USER')"
?la source