Spring Security fornisce JSP tag support per questo. Per esempio:
<sec:authorize url="/admin">
This content will only be visible to users who are authorized to access the "/admin" URL.
</sec:authorize>
Thymeleaf fornisce una sicurezza Dialetto primavera che ha il supporto diretto per checking URL authorization con Primavera di sicurezza. Per esempio:
<div sec:authorize-url="/admin">
This will only be displayed if authenticated user can call the "/admin" URL.
</div>
Se la tecnologia non supporta l'esecuzione direttamente l'assegno, si può facilmente utilizzare il WebInvocationPrivilegeEvaluator (questo è l'oggetto che il taglib JSP e l'uso Thymeleaf). Ad esempio, è possibile @Autowire
un'istanza di WebInvocationPrivilegeEvaluator
e utilizzarlo direttamente. Ovviamente la sintassi varia a seconda di dove la si utilizza (ad esempio GSP, Freemarker, ecc.), Ma qui c'è un esempio in codice Java diretto.
@Autowired
WebInvocationPrivilegeEvaluator webPrivs;
public void useIt() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
boolean hasAdminAccess = webPrivs.isAllowed("/admin", authentication);
boolean hasAdminPostAccess = webPrivs.isAllowed(null, "/admin", "POST", authentication);
}
fonte
2015-08-11 12:49:58
Si intende la richiesta che include il pattern di intercettazione-url o è autenticato con SSL? – HRgiger
intendo modello intercetta-url e annotazione protetta. – user1641877
Voglio verificare che la richiesta corrente in cui mi trovo sia anonima o che sia stata contrassegnata come protetta usando una configurazione o usando l'annotazione @Secured – user1641877