shiro jsp自定義標籤
阿新 • • 發佈:2018-12-18
1.建tld檔案 auth.tld
<taglib> <tlib-version>1.1.2</tlib-version> <jsp-version>1.2</jsp-version> <short-name>gzc Shiro</short-name> <description>gzc Shiro JSP Tag Library.</description> <tag> <name>hasAnyPermission</name> <tag-class>com.zjpii.wanbao.console.shiro.HasAnyPermissionTag</tag-class> <body-content>JSP</body-content> <description>Displays body content only if the current Subject (user) 'has' (implies) one of the specified permission (i.e the user has the specified ability) form a list of permissions. </description> <attribute> <name>name</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
2、該標籤對應的類
package com.zjpii.wanbao.console.shiro; import org.apache.shiro.subject.Subject; import org.apache.shiro.web.tags.PermissionTag; public class HasAnyPermissionTag extends PermissionTag{ private static final long serialVersionUID = 1L; private static final String PERMISSION_NAMES_DELIMETER = ","; public HasAnyPermissionTag() { } @Override protected boolean showTagBody(String permissions) { boolean hasAnyPermission = false; Subject subject = getSubject(); if (subject != null) { for (String permission : permissions .split(PERMISSION_NAMES_DELIMETER)) { if (subject.isPermitted(permission.trim())) { hasAnyPermission = true; break; } } } return hasAnyPermission; } }
3、頁面上的使用
<%@ taglib prefix="myshiro" uri="/WEB-INF/tld/auth.tld" %>
<myshiro hashasAnyPermission name="">
</myshiro>