Shiro教程(九)Shiro JSP标签的使用。

JSON 2016-08-26 01:30:52 45730

shiro demo下载

Shiro + SSM(框架) + Freemarker(jsp)讲解的权限控制Demo,还不赶快去下载?




Shiro  提供了 JSP  的一套 JSTL  标签,用于做 JSP  页面做权限控制的。可以控制一些按钮和一些超链接,或者一些显示内容。

Freemarker Shiro标签讲解:https://www.sojson.com/blog/143.html

SSM( SpringMVC  + Mybatis  Shiro  Redis  ) 集成的权限控制Demo地址:https://www.sojson.com/shiro

其实标签都是和Freemarker Shiro标签对应的,只不过是把@shiro.xxx  改成shiro:xxx 。下面来细细道来。

不过引入有区分,JSP需要在头部引入, Shiro  提供的TLD 文件:

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

下面来讲解具体的标签用法。

1.guest(游客)

<shiro:guest>  
您当前是游客,<a href="javascript:void(0);" class="dropdown-toggle qqlogin" >登录</a>
</shiro:guest> 

2.user(已经登录,或者记住我登录)

<shiro:user>  
欢迎[<shiro:principal/>]登录,<a href="/logout.shtml">退出</a>  
</shiro:user>   

3.authenticated(已经认证,排除记住我登录的)

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

4.notAuthenticated(和authenticated相反)

<shiro:notAuthenticated>
	当前身份未认证(包括记住我登录的)
</shiro:notAuthenticated> 

这个功能主要用途,识别是不是本次操作登录过的,比如支付系统,进入系统可以用记住我的登录信息,但是当要关键操作的时候,需要进行认证识别。

5.principal标签,这个要稍微重点讲讲。好多博客都是一下带过。

principal 标签,取值取的是你登录的时候。在Realm 实现类中的如下代码:

....
return new SimpleAuthenticationInfo(user,user.getPswd(), getName());

new SimpleAuthenticationInfo(第一个参数,....) 的第一个参数放的如果是一个username ,那么就可以直接用。

<!--取到username-->
<shiro: principal/>

如果第一个参数放的是对象,比如我喜欢放User 对象。那么如果要取username 字段。

<!--需要指定property-->
<shiro:principal property="username"/>

和下面 Java  代码一致

User user = (User)SecurityUtils.getSubject().getPrincipals();
String username = user.getUsername();

6.hasRole标签(判断是否拥有这个角色)

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

7.hasAnyRoles标签(判断是否拥有这些角色的其中一个)

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

8.lacksRole标签(判断是否不拥有这个角色)

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

9.hasPermission标签(判断是否有拥有这个权限)

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

10.lacksPermission标签(判断是否没有这个权限)

<shiro:lacksPermission name="user:add">  
	用户[<shiro:principal/>]不拥有user:add权限
</shiro:lacksPermission>   

自定义标签,请百度。或者我回头再讲解!

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/144.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Shiro教程Shiro JSP标签使用
Shiro教程(八)Shiro Freemarker标签使用
Shiro教程(四)Shiro + Redis配置
Shiro教程(五)Shiro + Redis实现
Shiro 教程Shiro教程0.2 下载,Shiro功能修复与升级说明。
Shiro + EHCache 缓存的使用
HTML meta标签总结与属性使用介绍
Shiro教程(六)Shiro整体的配置文件
Shiro教程(十)Shiro 权限动态加载与配置精细讲解
Shiro教程(一)Shiro 是什么?Shiro的简单介绍。
最新文章
Golang 常见设计模式之单例模式 4281
两招提升硬盘存储数据的写入效率 3553
【程序员的实用工具推荐】 Mac 效率神器 Alfred 3008
自媒体时代的贤内助——AI 视频云 2493
如何处理大体积 XLSX/CSV/TXT 文件? 1845
AI 视频云 VS 窄带高清,谁是视频时代的宠儿 1452
Golang 常见设计模式——装饰模式详细讲解 3499
Flink 在又拍云日志批处理中的实践 17010
个推异常值检测和实战应用-又拍云 4446
TCP 和 UDP协议详细讲解,优缺点分析讲解 13228
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 669898
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 643286
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 562943
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 527613
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 504155
Elasticsearch教程(四) elasticsearch head 插件安装和使用 472769
免费天气API,天气JSON API,不限次数获取十五天的天气预报 428989
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 238405
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 219525
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 215663
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...