spring mvc freemarker jsp使用security 标签
最近偶然有个需求,跟权限有关系,既然我们系统使用了security,那我就想看看在这里有什么可以挖掘的,于是就开始研究页面的标签
1.首先要在maven的pom.xm里面添加
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>4.2.3.RELEASE</version> </dependency>
2.如果是Jsp 就需要引入
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
如果是freemarker
<#assign sec = JspTaglibs["http://www.springframework.org/security/tags"]/>
但是有的时候可能会有找不到标签的情况,所以你可以把
security-taglibs jar包下面的 security.tld文件copy出来
放到WEB-INF/tlds/下
于是如下
<#assign sec = JspTaglibs["/WEB-INF/tlds/security.tld"]/>
3.在标签使用上
jsp标签的格式如下
<sec:authorize access="hasRole('supervisor')"> do some thing </sec:authorize>
freemarker格式如下
<@sec.authorize access="hasRole('ROLE_ADMIN')"> you can see this </@sec.authorize>
意思是如果你有单引号里面的权限,就可以看到标签里面的内容
4.常用标枪
比如想看见当前登陆的用户名,以下两个标签都可以
<@sec.authentication property="principal.username" /> <@sec.authentication property="name"/>
这里只是简单的描述以下。
jsp相关文档请参考官方文档