Tmiracle

shiro 页面标签

导入标签库

  • JSP 导入

    <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

  • thymeleaf 导入

    <html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">

标签

标签含义使用方法
principal

显示当前用户信息,通常为登录帐号信息,默认调用 Subject.getPrincipal() 获取

<shiro:principal property="username"/>

相当于:

((User)Subject.getPrincipals()).getUsername()
guest

验证当前用户是否为“访客”,即未认证(包含未记住)的用户

<shiro:guest>
    欢迎游客访问,<a href="${pageContext.request.contextPath}/login.jsp">登录</a>
</shiro:guest>
user

认证通过或已记住的用户

<shiro:user> 
    欢迎回来,XXX
</shiro:user>
authenticated

已认证通过的用户,不包含已记住的用户,这是与user标签的区别所在
Subject.login

<shiro:authenticated>
    用户[<shiro:principal/>]已身份验证通过
</shiro:authenticated>
notAuthenticated

未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户

<shiro:notAuthenticated>
    请重新<a href="/login">登陆</a>
</shiro:notAuthenticated>
hasRole

验证当前用户是否属于该角色

<shiro:hasRole name="administrator"> 
     <a href="/setting">系统设置</a>
</shiro:hasRole>
hasAnyRoles

验证当前用户是否拥有以下任意一个角色

<shiro:hasAnyRoles name="coder, administrator"> 
    您拥有coder或administrator角色
</shiro:lacksRole>
lacksRole

与hasRole标签逻辑相反,当用户不属于该角色时验证通过

<shiro:lacksRole name="loser">
    对不起,你只是个屌丝
</shiro:lacksRole>
hasPermission

验证当前用户是否拥有指定权限

<shiro:hasPermission name="user:delete"> 
    <a href="/delete">删除</a>
</shiro:hasPermission>
lacksPermission

与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过

<shiro:lacksPermission name="user:update">
    如果你没有user:update权限将会看到我
</shiro:lacksPermission>
所属标签: