深入浅出学Shiro.pdf
《深入浅出学Shiro.pdf》由会员分享,可在线阅读,更多相关《深入浅出学Shiro.pdf(115页珍藏版)》请在三一文库上搜索。
1、Java私塾深入浅出学私塾深入浅出学Shiro 系列精品教程系列精品教程 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 整体课程概览 n 系统学习Shiro 的核心开发知识,循序渐进,系统理解和掌握 n 第一章:权限管理基础 包括:理解常见权限系统的两个大部分(分配权限和验证权限)、理解安全实体 和权限的含义、理解权限的继承性、理解权限的最近匹配原则等 n 第二章:Shiro入门 包括:是什么、能干什么、有什么、高层概览架构、完整架构、HelloWorld
2、 n 第三章:Shiro的配置 包括:程序配置、ini配置的方式(包括各个部分的配置)、权限字符串方式等 n 第四章:Shiro的身份认证 包括:认证示例、理解Remembered和Authenticated、理解认证的流程、多个 Realm等 n 第五章:Shiro的授权 包括:授权的要素和粒度、编程授权、注解授权、理解授权的流程、理解 ModularRealmAuthorizer等 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 整体课程概览 n 第六章
3、:Shiro的Realms 包括:理解Realms的认证实现、Shiro默认的Realms的认证实现、使用默认的 JdbcRealm、自定义Realm、在spring的配置文件中使用等 n 第七章:Shiro的Session管理 包括:概述和配置使用、理解SessionDAO、Web应用中的Session、自定义 SessionDAO n 第八章:Shiro和Spring的集成 包括:基本应用的配置、Web应用的配置、和Struts2+Spring3的集成、和 SpringMVC+Spring3的集成 n 第九章:Shiro的Web 包括:URLS配置、Shiro的Tag Libary的使用等
4、 n 第十章:Shiro的Cache 包括:Shiro的Caching API、Caching配置使用、包装使用其他的Cache框架、缓 存数据同步更新的解决方案 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 第一章:权限管理设计基础 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 权限管理设计基础-1 n 为了让大家更
5、好的理解后面讲述的知识,先介绍一点权限系统的基础知识: 几乎所有的权限系统都分成两个部分,一个是分配权限部分,一个是验证 权限部分,为了理解它们,首先解释两个基本的名词:安全实体和权限。 安全实体安全实体:就是被权限系统保护的对象,比如工资数据。 权限权限:就是需要被校验的权限对象,比如查看、修改等。 n 安全实体和权限通常要一起描述才有意义: 比如有这么个描述:“现在要检测登录人员对工资数据是否有查看的权限”, “工资数据”这个安全实体和“查看”这个权限一定要一起描述。如果只出现安全实 体描述,那就变成这样:“现在要检测登录人员对工资数据”,对工资数据干什么 呀,没有后半截,一看就知道不完整
6、;当然只有权限描述也不行,那就变成: “现在要检测登录人员是否有查看的权限”,对谁的查看权限啊,也不完整。所以 安全实体和权限通常要一起描述。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 权限管理设计基础-2 n 了解了上面两个名词,来看看什么是分配权限和验证权限: 所谓分配权限是指所谓分配权限是指:把对某些安全实体的某些权限分配给某些人员的过程。 所谓验证权限是指所谓验证权限是指:判断某个人员或程序对某个安全实体是否拥有某个或某些权限 的过程。 也就是
7、说,分配权限过程即是权限的分配过程,而验证权限过程则是权限分配权限过程即是权限的分配过程,而验证权限过程则是权限 的匹配过程的匹配过程。在目前应用系统的开发中,多数是利用数据库来存放授权过程产生 的数据,也就是说:分配权限是向数据库里面添加数据、或是维护数据的过程, 而验证权限过程就变成了从数据库中获取相应数据进行匹配的过程了。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 权限管理设计基础-3 n 再来介绍一下验证权限涉及到的两个名词: n 权限的继承性
8、权限的继承性指的是:如果多个安全实体存在包含关系,而某个安全实体没有相 应的权限限制,那么它会继承包含它的安全实体的相应权限。 比如:某个大楼和楼内的房间都是安全实体,很明显大楼这个安全实体会 包含楼内的房间这些安全实体,可以认为大楼是楼内房间的父级实体。现在来考 虑一个具体的权限进入某个房间的权限。如果这个房间没有门,也就是谁都 可以进入,相当于这个房间对应的安全实体,没有进入房间的权限限制,那么是 不是说所有的人都可以进入这个房间呢?当然不是,某人能进入这个房间的前提 是:这个人要有权限进入这个大楼,也就是说,这个时候房间这个安全实体,它 本身没有进入权限的限制,但是它会继承父级安全实体的
9、进入权限。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 权限管理设计基础-4 n 权限的最近匹配原则权限的最近匹配原则指的是:如果多个安全实体存在包含关系,而某个安全实体 没有相应的权限限制,那么它会向上寻找并匹配相应权限限制,直到找到一个离 这个安全实体最近的拥有相应权限限制的安全实体为止。如果把整个层次结构都 寻找完了都没有匹配到相应权限限制的话,那就说明所有人对这个安全实体都拥 有这个相应的权限限制。 继续上面权限继承性的例子,如果现在这个大楼是坐
10、落在某个机关大院 内,这就演变成了,要进入某个房间,首先要有进入大楼的权限,要进入大楼又 需要有能进入机关大院的权限。 所谓最近匹配原则就是,如果某个房间没有门,也就意味着这个房间没有 进入的权限限制,那么它就会向上继续寻找并匹配,看看大楼有没有进入的权限 限制,如果有就使用这个权限限制,终止寻找;如果没有,继续向上寻找,直到 找到一个匹配的为止。如果最后大院也没有进入的权限限制,那就变成所有人都 可以进入到这个房间里面来了。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:16
11、78098805 第二章:Shiro入门 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro是什么和能干什么 n Shiro是什么 Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话 管理等功能 n Shiro能做什么 认证:认证:验证用户来核实他们的身份 授权:授权:对用户执行访问控制,如: 判断用户是否被分配了一个确定的安全角色 判断用户是否被允许做某事 会话管理:会话管理:在任何环境下使用Session AP
12、I,即使没有Web 或EJB 容器。 加密:加密:以更简洁易用的方式使用加密的功能,保护或隐藏数据防止被偷窥 Realms:聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户 “视图”。 启用单点登录(单点登录(SSO)功能。 为没有关联到登录的用户启用“Remember Me“服务 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro有什么-1 nShiro的四大部分身份验证,授权,会话管理和加密 Authentication:有时也简称为
13、“登录”,这是证明用户是他们所说的他们是谁的行为。 Authorization:访问控制的过程,也就是绝对“谁”去访问“什么”。 Session Management:管理用户特定的会话,即使在非Web 或EJB 应用程序。 Cryptography:通过使用加密算法保持数据安全同时易于使用 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro有什么-2 n 除了以上功能,shiro还提供很多扩展 Web Support:主要针对web应用提供一些常用
14、功能。 Caching:缓存可以使应用程序运行更有效率。 Concurrency:多线程相关功能。 Testing:帮助我们进行测试相关功能 “Run As“:一个允许用户假设为另一个用户身份(如果允许)的功能,有 时候在管理脚本很有用。 “Remember Me”:记住用户身份,提供类似购物车功能。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro的高层概览架构-1 nSubject Subject 实质上是一个当前执行用户的特定的安全“视图”。
15、Subject 可以是一个 人,也可以代表第三方服务,或其他类似的任何东西基本上是当前正与软件进行交互 的任何东西。 所有Subject 实例都被绑定到(且这是必须的)一个SecurityManager 上。当你与 一个Subject 交互时,那些交互作用转化为与SecurityManager 交互的特定subject 的交 互作用。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro的高层概览架构-2 nSecurityManager Securi
16、tyManager 是Shiro 架构的心脏,用来协调内部的安全组件共同构成一个对 象图,管理内部组件实例,并通过它来提供安全管理的各种服务。 实际开发中,程序人员主要与Subject交互,但是要认识到,当你正与一个Subject 进行交互时,实质上是幕后的SecurityManager 处理所有繁重的Subject 安全操作。 nRealms Realms 担当Shiro 和你的应用程序的安全数据之间的“桥梁”或“连接器”。当它 实际上与安全相关的数据如用来执行身份验证(登录)及授权(访问控制)的用户帐户交 互时,Shiro 从一个或多个为应用程序配置的Realm 中寻找许多这样的东西。 R
17、ealm 本质上是一个特定安全的DAO:它封装了数据源的连接详细信息,使Shiro 所 需的相关的数据可用。当配置Shiro 时,你必须指定至少一个Realm 用来进行身份验证和/ 或授权。SecurityManager可能配置多个Realms,但至少有一个是必须的。 Shiro 提供了立即可用的Realms 来连接一些安全数据源(即目录),如LDAP,关系 数据库(JDBC),文本配置源,像INI 及属性文件,以及更多。你可以插入你自己的Realm 实现来代表自定义的数据源,如果默认地Realm 不符合你的需求。 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质
18、量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro的完整架构-1 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro的完整架构-2 n Authenticator :是一个执行对用户的身份验证(登录)的组件。 Authenticator 知道如何与一个或多个Realm 协调来存储相关的用户/帐户信息。 从这些 Realm 中获得的数据被用来验证用户的身份来保证用户确实是他们所说 的他
19、们是谁。 n 如果存在多个realm,则接口AuthenticationStrategy会确定什么样算是登录成 功(例如,如果一个Realm成功,而其他的均失败,是否登录成功?)。 n Authorizer :授权实质上就是访问控制 - 控制用户能够访问应用中的哪些内 容,比如资源、Web页面等等。 n SessionManager :提供可在任何应用或架构层一致地使用Session API。 n SessionDAO:代表SessionManager 执行Session 持久化(CRUD)操作。 n CacheManager :对Shiro的其他组件提供缓存支持。 n Cryptograph
20、y:Shiro的api大幅度简化java api中繁琐的密码加密 n Realms:Realms 在Shiro 和你的应用程序的安全数据之间担当“桥梁”或“连 接器”。简单的说,shiro通过Realms来获取相应的安全数据 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro的HelloWorld-1 n 构建开发和运行环境: 1:在eclipse里面创建一个基本的java工程 2:加入所需要的jar包 n 在src下创建TestShiro.ini文
21、件,内容如下: users javass = cc,role1 roles role1 = p1,p2 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro的HelloWorld-2 n创建cn.javass.hello包,并创建HelloWorld类 public class HelloWorld public static void main(String args) Factory f = new IniSecurityManagerFactor
22、y(“classpath:TestShiro.ini“); org.apache.shiro.mgt.SecurityManager s = f.getInstance(); SecurityUtils.setSecurityManager(s); UsernamePasswordToken token = new UsernamePasswordToken(“javass“,“cc“); token.setRememberMe(true); Subject currentUser = SecurityUtils.getSubject(); currentUser.login(token);
23、boolean flag = currentUser.isPermitted(“p1“); System.out.println(“flag=“ + flag); java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 第三章:Shiro的配置 java私塾 深入浅出学深入浅出学Shiro系列精品教程系列精品教程 真正高质量培训签订就业协议真正高质量培训签订就业协议 网址:网址:http:/ 咨询咨询QQ:1678098805 Shiro配置基础知识 n Shiro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深入浅出 Shiro
链接地址:https://www.31doc.com/p-3334329.html