shiro 之 Shiro 标签
shiro 之 Shiro 标签
本节我们将学习一下Shiro 的标签。
Shiro 提供了 JSTL 标签用于在 JSP 页面进行权限控制,如根据登录用户显示相应的页面按钮。在使用Shiro 的标签之前我们需要引入Shiro Tag:
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
guest 标签:用户没有身份验证时显示相应信息,即游客访问信息:
<shiro:guest>
这是一个游客可以访问的链接<a href="<%=basePath%>/login/toLogin"></a>
</shiro:guest>
user 标签:用户已经经过认证/记住我登录后显示相应的信息。
<shiro:user>
欢迎[<shiro:principal />] 登录,<a href="<%=basePath%>/login/logout">Logout</a>
</shiro:user>
authenticated 标签:用户已经身份验证通过,即Subject.login登录成功,不是记住我登录的
<shiro:authenticated>
用户[<shiro:principal/>]已经通过身份认证
</shiro:authenticated>
notAuthenticated 标签:用户未进行身份验证,即没有调用Subject.login进行登录,包括记住我自动登录的也属于未进行身份验证。
<shiro:notAuthenticated>
未做身份验证时的显示
</shiro:notAuthenticated>
pincipal 标签:显示用户身份信息,默认调用Subject.getPrincipal() 获取,即 Primary Principal。
欢迎<shiro:principal/>登录!
hasRole 标签:如果当前 Subject 有角色将显示 body 体内容
<shiro:hasRole name="admin">
用户[<shiro:principal/>] 拥有 admin 角色权限!
</shiro:hasRole>
hasAnyRoles 标签:如果当前Subject有任意一个角色(或的关系)将显示body体内容。
<shiro:hasAnyRoles name="admin,manager">
用户[<shiro:principal/>] 拥有 admin 或者 manager 角色 权限!
</shiro:hasAnyRoles>
lacksRole 标签:如果当前 Subject 没有角色将显示 body 体内容
<shiro:lacksRole name="manager">
用户[<shiro:principal/>] 没有拥有manager角色权限!
</shiro:lacksRole>
hasPermission 标签:如果当前 Subject 有权限将显示 body 体内容
<shiro:hasPermission name="admin
*">
用户[<shiro:principal/>] 拥有 admin
* 权限!
</shiro:hasPermission>
lacksPermission 标签:如果当前Subject没有权限将显示body体内容。
<shiro:lacksPermission name="admin
*">
用户[<shiro:principal/>] 没有 admin
* 权限!
</shiro:lacksPermission>
小结
- 使用 SHiro 标签时要先引入 Shiro Tags
- 一般 Shiro 标签结合各种方式的认证和授权一起使用会更能满足我们的需求。
还没有评论,来说两句吧...