shiro-标签
Shiro提供了JSTL标签用于JSP页面进行权限控制,如:根据用户显示相应的页面按钮。
引入shiro-JSTL标签:
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
1. guest标签:用户没有身份验证时显示相应信息,即:游客访问。
<shiro:guest>
欢迎游客访问,<a href="login.jsp">登录</a>
</shiro:guest>
2. user标签:用户已经登录/记住我登录后,显示相应的信息:
<shiro:user>
欢迎[<shiro:principal/>]登录,<a href="logout">退出</a>
</shiro:user>
3. notAuthenticated标签:用户为进行身份验证,即没有调用Subject.login进行登录,暴扣记住我自动登录也属于为进行身份验证:
<shiro:notAuthenticated>
未进行身份验证(包括记住我)
</shiro:notAuthenticated>
4. pincipal标签:显示用户身份信息(用户ID),默认调用Subject.getPrincipal()获取:
<shiro:principal property="username" />
5. hasRole标签:如果当前Subject有角色将显示body体内容:
<shiro:hasAnyRoles name="admin"> 用户<shiro:principal />拥有角色admin </shiro:hasAnyRoles>
6. hasAnyRoles标签:如果当前的Subject有任意一个角色(或的关系),将显示boby题内容:
<shiro:hasAnyRoles name="admin,user"> 用户<shiro:principal />拥有角色admin或user </shiro:hasAnyRoles>
7. lacksRole:如果当前的Subject没有角色将显示body体内容:
<shiro:lacksRole name="admin"> 用户<shiro:principal />没有角色admin </shiro:lacksRole>
8. hasPermission:如果当前Subject有权限将显示body体内容:
<shiro:hasPermission name="user:create"> 用户<shiro:principal />拥有user:create权限 </shiro:hasPermission>
9. lacksPermission:如果当前Subject没有权限将显示body体内容:
<shiro:lacksPermission name="org:create"> 用户<shiro:principal />没有org:create权限 </shiro:lacksPermission>