最近,我一直致力于这样一个要求:某些UI元素应仅对具有特定角色的用户可见(比如角色为XXX)
我用过:
<sec:authorize access="hasRole('XXX')"> <input type="button"/></sec:authorize>
工作正常。
但我只是想了解我是否需要在java代码中添加以下行?如果是,那么为什么?
@PreAuthorize("hasRole('XXX')")
答案 0 :(得分:1)
通常,这取决于。
如果您使用Spring MVC
构建/维护经典MVC应用程序,并且所有RequestMapping
都指向(JSP)视图(因此由{{1}解析并且通常由InternalResourceViewResolver
呈现)您不需要JspServlet
。
但是,如果您要暴露至少一个端点,例如作为JSON / XML,如果需要,您需要添加@PreAuthorize
。
简单地说,如果您的处理程序方法返回一个由ViewResolver
解析的值,请使用JSP
,Velocity
或Freemarker
的相应标记,否则请考虑使用{{ 1}}。