Nie jest dla mnie jasne, jaka jest różnica w zabezpieczeniach wiosennych między:
@PreAuthorize("hasRole('ROLE_USER')")
public void create(Contact contact)
I
@Secured("ROLE_USER")
public void create(Contact contact)
Rozumiem, że PreAuthorize może współpracować z spring el, ale czy w mojej próbce jest prawdziwa różnica?
spring-security
Jerome VDL
źródło
źródło
Jeśli chciałbyś zrobić coś takiego jak dostęp do metody tylko wtedy, gdy użytkownik ma Role1 i Role2, musisz użyć @PreAuthorize
Za pomocą
źródło
Po prostu
@PreAuthorize
jest nowszy niż@Secured
.Więc mówię, że lepiej jest używać,
@PreAuthorize
ponieważ jest "oparty na wyrażeniach" i możesz używać wyrażeń takich jak hasRole, hasAnyRole, allowAll itp.Aby dowiedzieć się więcej o wyrażeniach, zobacz te przykładowe wyrażenia .
źródło
@PreAuthorize
jest inny, jest mocniejszy niż@Secured
.więc nie możesz wyrazić warunku AND za pomocą
źródło
"hasRole('ADMIN OR hasRole('USER')"
?źródło