自定义Shiro标签Tag
1:新建.tld文件
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<description>Security JSP Tag</description>
<tlib-version>1.1</tlib-version>
<short-name>security</short-name>
<uri>/security</uri>
<tag>
<description>判断当前用户是否拥有其中所有的角色(逗号分隔,表示“与”的关系)</description>
<name>hasAllRoles</name>
<tag-class>org.smart4j.plugin.security.tag.HasAllRolesTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
2:新建HasAllRolesTag,继承org.apache.shiro.web.tags.RoleTag
public class HasAllRolesTag extends RoleTag {
private static final String ROLE_NAMES_DELIMITER = ",";
@Override
protected boolean showTagBody(String roleNames) {
boolean hasAllRole = false;
Subject subject = getSubject();
if (subject != null) {
if (subject.hasAllRoles(Arrays.asList(roleNames.split(ROLE_NAMES_DELIMITER)))) {
hasAllRole = true;
}
}
return hasAllRole;
}
}
3:jsp页面引用tld文件的uri
<%@ taglib prefix="security" uri="/security" %>
<security:hasAllRoles name=""></security:hasAllRoles>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: shiro添加多用户角色判断
- 下一篇: shiro实现基于角色的权限授权