分享人:龚剑飞
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
先介绍下背景
Shiro是什么?
Apache Shiro(读作“sheeroh”,即日语“城”)是一个开源安全框架,提供身份验证、授权、密码和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
城:じょう、しろ
Shiro的产生背景:Shiro的前身是JSecurity。 2004年,Les Hazlewood和Jeremy Haile创办了Jsecurity。当时他们找不到适用于应用程序级别的合适Java安全框架,同时又对JAAS非常失望。2010年9月22日,Shrio成为Apache软件基金会的顶级项目(TLP)。
Java认证和授权服务(Java Authentication and Authorization Service,简称JAAS)是一个Java以用户为中心的安全框架,作为Java以代码为中心的安全的补充。自Java运行环境(JRE) 1.4起,JAAS就被集成到JRE,而之前是作为一个扩展库由Sun公司提供的。
Shiro的几个术语
Subject
SecurityManager
Relam
Role&Permission
Subject
Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者;
SecurityManager
安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;可以看出它是Shiro的核心,它负责与后边介绍的其他组件进行交互,如果学习过SpringMVC,你可以把它看成DispatcherServlet前端控制器;
Relam
Realm:域,Shiro从从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。
Role&Permission
角色与权限:一个角色可以对应多个权限。Shiro验证有两种方式。
①、使用Shiro的好处是什么?
②、如何使用Shiro?
①、Shiro可以使项目的验证架构更加完善,扩展性强
②、别说话,看我操作
SpringSecurity,是Spring框架的一个分支,主要也是解决验证登录权限问题,可是需要Spring4.1以上的版本,无奈我们项目用的框架只支持低版本3.1.1.Release 用不了啊用不了
http://shiro.apache.org/
感谢观看,如有出错,恳请指正
BY : 龚剑飞