Mir ist nicht klar, was der Unterschied in der Frühlingssicherheit ist zwischen:
@PreAuthorize("hasRole('ROLE_USER')")
public void create(Contact contact)
Und
@Secured("ROLE_USER")
public void create(Contact contact)
Ich verstehe, dass PreAuthorize mit Spring El arbeiten kann, aber gibt es in meinem Beispiel einen echten Unterschied?
spring-security
Jerome VDL
quelle
quelle
Wenn Sie nur dann auf die Methode zugreifen möchten, wenn der Benutzer über Rolle1 und Rolle2 verfügt, müssen Sie @PreAuthorize verwenden
Verwenden von
quelle
Einfach
@PreAuthorize
ist neuer als@Secured
.Ich sage also, es ist besser zu verwenden,
@PreAuthorize
da es "ausdrucksbasiert" ist und Sie Ausdrücke wie hasRole, hasAnyRole, allowAll usw. verwenden können.Informationen zu Ausdrücken finden Sie in diesen Beispielausdrücken .
quelle
@PreAuthorize
ist anders, es ist mächtiger als@Secured
.Sie können die UND-Bedingung also nicht mit ausdrücken
quelle
"hasRole('ADMIN OR hasRole('USER')"
?quelle