2016-07-13 11 views
0

Kürzlich habe ich auf aa Anforderung arbeiten, wo in bestimmten UI-Elementen nur für Benutzer mit besonderer Rolle sichtbar sein soll (sagen Rolle ist XXX)Frühling Sicherheit Verwendung von @PreAuthorize

I verwendet:

<sec:authorize access="hasRole('XXX')"> <input type="button"/></sec:authorize> 

was gut funktioniert.

Aber ich wollte nur verstehen, wenn ich die untere Zeile auch auf den Java-Code hinzufügen muss? Wenn ja, warum?

@PreAuthorize("hasRole('XXX')") 

Antwort

1

Wie üblich hängt es davon ab.

Wenn Sie bauen/eine klassische MVC-Anwendung mit Spring MVC erhalten und alle Ihre RequestMapping ‚s deuten auf eine (JSP) Ansicht (daher durch eine InternalResourceViewResolver aufgelöst und in der Regel durch die JspServlet gerendert) Sie brauchen nicht @PreAuthorize .

Wenn Sie jedoch mindestens einen Endpunkt belichten, z. Als JSON/XML benötigen Sie @PreAuthorize, wenn es erforderlich ist.

Einfach gesagt, wenn Ihre Handler-Methode einen Wert zurückgibt, der durch ein ViewResolver den entsprechenden Tag für JSP, Velocity oder Freemarker sonst @PreAuthorize mit betrachten verwenden aufgelöst wird.

+0

danke für die nette Erklärung! – fiddle