@PreAuthorize è diverso, è più potente di @Secured.
Le vecchie annotazioni @Secured non consentivano l'utilizzo di espressioni. A partire da Spring Security 3, sono preferite le annotazioni più flessibili @PreAuthorize e @PostAuthorize (nonché @PreFilter e @PostFilter), in quanto supportano Spring Expression Language (SpEL) e forniscono il controllo degli accessi basato sull'espressione.
Il @Secured ("ROLE_ADMIN") annotazione è lo stesso di @PreAuthorize ("hasRole ('ROLE_ADMIN')") Il @Secured ({ "ROLE_USER", "ROLE_ADMIN") è considerato come ROLE_USER O ROLE_ADMIN. quindi non è possibile esprimere la condizione AND utilizzando @Secured. Puoi definire lo stesso con @PreAuthorize ("hasRole ('ADMIN OR hasRole (' USER ')"), che è più semplice da comprendere . Puoi esprimere AND, OR, o NOT (!) Pure
@PreAuthorize ("!isAnonymous() AND hasRole ('ADMIN') ")
fonte
2017-10-03 08:32:00
OK, quindi nel mio esempio nessuna differenza, grazie! –
Non lo sapevo, ma sembra fantastico!: D –