安全/权限框架Shiro(11)之Shiro标签

安全/权限框架Shiro(11)之Shiro标签

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

Shiro 提供了 JSTL 标签库用于 Jsp 页面进行权限控制,如根据登录用户的角色对应的权限显示相应的页面按钮。只需在 Jsp 中引入下面标签库即可使用:

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

常用标签如下:

shiro:guest

用户没有身份验证时显示相应信息,即游客访问信息。

<shiro:guest>
欢迎游客访问,<a href='/login.jsp'>登录
</shiro:guest>

shiro:user

用户已经经过认证或通过“记住我”登录后显示相应的信息。

<shiro:user>
欢迎[<shiro:principal/>]访问,<a href='/logout'>退出</a>
</shiro:user>

shiro:authenticated

用户已经身份验证通过,即通过 Subject.login 方法登录成功,非记住我登录。

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

shiro:notAuthenticated

用户未进行身份验证,即没有通过 Subject.login 进行登录,包括通过“记住我”自动登录的也属于未进行身份验证。

<shiro:notAuthenticated>
    未进行身份验证(包括记住我)
</shiro:notAuthenticated>

shiro:principal

显示用户身份信息,默认调用 Subject.getPrincipal 方法获取,即 Primary Principal

<shiro:principal property="username"/>

shiro:hasRole

如果当前 Subject 有指定角色将显示标签内的内容。

<shiro:hasRole name="admin">
    用户[<shiro:principal/>]拥有角色 admin
</shiro:hasRole>

shiro:hasAnyRoles

如果当前 Subject 有任意一个角色,则显示标签内内容。

<shiro:hasAnyRoles name="admin,user">
    用户[<shiro:principal/>]拥有角色 admin 或 user
</shiro:hasAnyRoles>

shiro:lacksRole

如果当前 Subject 没有指定角色将显示标签内内容。

<shiro:lacksRole name="admin">
    用户[<shiro:principal/>]没有角色 admin
</shiro:lacksRole>

shiro:hasPermission

如果当前 Subject 有指定权限将显示标签内内容。

<shiro:hasPermission name="user:create">
    用户[<shiro:principal/>]拥有权限 user:create
</shiro:hasPermission>

shiro:acksPermission

如果当前 Subject 没有指定权限将显示标签内内容。

<shiro:lacksPermission name="org:create">
    用户[<shiro:principal/>]没有权限 org:create
</shiro:lacksPermission>

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/shiro11.html

Buy me a cup of coffee ☕.