Shiro - JSP页面标签应用

本文介绍了Apache Shiro框架中用于JSP页面的权限控制标签,包括如何使用这些标签来根据用户角色和权限展示不同的页面内容。从基本的角色检查到复杂的权限验证,Shiro提供了丰富的标签来帮助开发者轻松实现细粒度的访问控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shiro提供了JSTL 标签用于在JSP 页面进行权限控制,如根据登录用户显示相应的页面按钮。

Shiro支持三种方式实现授权过程

  • 编码实现
  • 注解实现
  • JSP Taglig实现

JSP Taglig实现 - Shiro在JSP页面使用标签的形式表现,首先引入shiro标签。**

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

【1】<shiro:hasRole/>

如果有该角色,则校验通过。name属性值只能为单个。

示例如下:

 <shiro:hasRole name ="admin">
 ...
 <shiro:hasRole/>

【2】<shiro:hasAnyRoles/>

如果是角色中的一个,则校验即可通过。name值可为多个。

示例如下:

<shiro:hasAnyRoles name ="admin,normal">
...
</shiro:hasAnyRoles>

【3】<shiro:lacksRole/>

如果用户没有该角色,则校验通过。name属性值只能有一个。

示例如下:

<shiro:lacksRole name ="admin">
...
</shiro:lacksRole >

【4】<shiro:hasPermission/>

如果用户有某个权限,则校验通过。name属性值只能有一个。

示例如下:

<shiro:hasPermission name = "user:area">
....
</shiro:hasPermission>

【5】<shiro:lacksPermission/>

如果用户没有该权限,则校验通过。name属性值只能有一个。

示例如下:

<shiro:lacksPermissionname ="admin">
...
</shiro:lacksPermission>

【6】<shiro:guest/>

来宾标签,如果未认证(登录) 或者 系统未记住,则通过校验。

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

范围:未认证已记住+未记住已认证+未认证且未记住。

示例如下:

<shiro:guest>
	Hello,Please login..
</<shiro:guest>


【7】<shiro:user/>

用户标签,与来宾标签对应,如果已经认证(登录) 或 记住我,则通过校验。

In other words : 认证通过或已记住的用户 。

范围:认证未记住+记住未认证+认证且记住。

<shiro:user>  
    Welcome back John! 
</shiro:user>  

【8】<shiro:authenticated/>

认证标签比user标签更严格,只有**通过认证(登录)**才可通过校验。

In other words : 只有已认证通过的用户,不包含只有已记住(记住我)的用户,这是与user标签的区别所在

范围:认证且未记住+认证且已记住。

<shiro:authenticated>  
    ....
</shiro:authenticated> 

【9】<shiro:notAuthenticated/>

未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。 即,“记住我”进行登录的yeshuyu未进行身份认证。

范围:未认证且未记住+未认证且已记住。

示例如下:

<shiro:notAuthenticated>  
    Please <a href="login.jsp">login</a> 
</shiro:notAuthenticated>  

【10】<shiro:principal/>

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

示例如下:

Hello, <shiro:principal/>, how are you today?  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流烟默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值