Para mí no está claro cuál es la diferencia en la seguridad de primavera entre:
@PreAuthorize("hasRole('ROLE_USER')")
public void create(Contact contact)
Y
@Secured("ROLE_USER")
public void create(Contact contact)
Entiendo que PreAuthorize puede funcionar con spring el pero, en mi muestra, ¿hay alguna diferencia real?
spring-security
Jerome VDL
fuente
fuente
Si quisieras hacer algo como acceder al método solo si el usuario tiene Role1 y Role2, entonces deberías usar @PreAuthorize
Utilizando
fuente
Simplemente,
@PreAuthorize
es más nuevo que@Secured
.Entonces, digo que es mejor usarlo
@PreAuthorize
ya que está "basado en expresiones" y puede usar expresiones como hasRole, hasAnyRole, permitAll, etc.Para aprender sobre expresiones, vea estos ejemplos de expresiones .
fuente
@PreAuthorize
es diferente, es más poderoso que@Secured
.así que no puedes expresar la condición AND usando
fuente
"hasRole('ADMIN OR hasRole('USER')"
?fuente