Não está claro para mim qual é a diferença na segurança da primavera entre:
@PreAuthorize("hasRole('ROLE_USER')")
public void create(Contact contact)
E
@Secured("ROLE_USER")
public void create(Contact contact)
Entendo que o PreAuthorize pode funcionar com a Spring el, mas na minha amostra, há uma diferença real?
spring-security
Jerome VDL
fonte
fonte
Se você quiser fazer algo como acessar o método apenas se o usuário tiver Função1 e Função2, será necessário usar @PreAuthorize
Usando
fonte
Simplesmente,
@PreAuthorize
é mais novo que@Secured
.Então, eu digo que é melhor usar
@PreAuthorize
, pois é "baseado em expressão" e você pode usar expressões como hasRole, hasAnyRole, allowAll etc.Para aprender sobre expressões, consulte estes exemplos de expressões .
fonte
@PreAuthorize
é diferente, é mais poderoso que@Secured
.então você não pode expressar a condição AND usando
fonte
"hasRole('ADMIN OR hasRole('USER')"
?fonte