- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shiro学习文档
Shiro学习文档
shiro入门
Apache Shiro 是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。
Shiro的功能:
认证:验证用户来核实他们的身份
授权:对用户执行访问控制,如:
判读用户是否被分配了一个确定的安全角色
判读用户是否被允许做某事
会话管理:在任何环境下使用Session API,即使没有Web或EJB容器。
加密:以更加简洁易用的方式使用加密的功能,保护或隐藏数据防止被偷窥
Realms:聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户“视图”。
启用单点登录(SSO)功能。
为没有关联到登录的用户启用“Remember Me”服务。
Shiro的四大部分——身份验证,授权,会话管理和加密
Authentication:有时也简称为“登录”,这是证明用户是他们所说的他们是谁的行为。
Authorization:访问控制的过程,也就是绝对“谁”去访问“什么”。
Session Management:管理用户特定的会话,即使再非Web或EJB应用程序。
Cryptography:通过使用加密算法保持数据安全同时易于使用。
Shiro提供的扩展功能:
Web Support:主要针对web应用提供一些常用功能。
Caching:缓存可以使应用程序运行更有效率。
Testing:帮助我们进行测试相关功能。
“Run AS”:一个允许用户假设为另一个用户身份(如果允许)的功能,有时候在管理脚本很有用。
“Remember Me”:记住用户身份,提供类似购物车功能。
Shiro的高层概览架构
Subject
Subject实质上是一个当前执行用户的特定的安全“视图”。Subject可以是一个人,也可以是代表第三方服务,或其他类似的任何东西——基本上是当前正与软件进行交互的任何东西。
所以Subject实例都被绑定到(且这是必须的)一个SecurityManager上。当你与一个Subject交互时,那些交互作用转化为与SecurityManager交互的特定Subject的交互作用。
SecurityManager
SecurityManager 是Shiro架构的心脏,用来协调内部的安全组件共同构成一个对象图,管理内部组件实例,并通过它来提供安全管理的各种服务。
实际开发中,程序人员主要与Subject交互,但是要认识到,当你正与一个Subject进行交互时,实质上是幕后的SecurityManager处理所有繁重的Subject安全操作。
Realms
Realms担当Shiro和你的应用程序的安全数据之间的“桥梁”或“连接器”。当它实际上与安全相关的数据如用来执行身份验证(登录)及授权(访问控制)的用户账户交互时,Shiro从一个或多个为应用程序的配置的Realm中寻找许多这样的东西。
Realm 本质上是一个特定安全的DAO:它封装了数据源的连接详细信息,使Shiro所需的相关的数据可用。当配置shiro时,你必须指定至少一个Realm用来进行身份验证或授权。SecurityManager可能配置多个Realms,但至少有一个是必须的。
Shiro提供了立即可用的Realms来连接一些安全数据源(即目录),如LDAP,关系数据库(JDBC),文本配置源,像INI及属性文件,以及更多。你可以插入你自己的realm实现来代表自定义的数据源,如果默认地Realm不符合你的需求。
Shiro的完整架构
Authenticator:是一个执行对用户的身份验证(登录)的组件。
Authenticator知道如何与一个或多个Realm协调来存储相关的用户/账户信息。从这些Realm中获得的数据被用来验证用户的身份来保证用户确实是他们所说的他们是谁。
如果存在多个Realm,则接口AuthenticationStrategy会确定什么样算是登录成功(例如,如果一个Realm成功,而其他的均失败,是否登录成功?)。
Authorizer:授权实质上就是访问控制——控制用户能够访问应用中的哪些内容,比如资源、Web页面等等。
SessionManager:提供可在任何应用或架构层一致地使用Session API。
SessionDAO:代表SessionManager执行Session持久化(CRUD)操作。
CacheManager:对Shiro的其他组件提供缓存支持。
Cryptography:Shiro的API大幅度简化Java API中繁琐的密码加密。
Realms:Realms在Shiro和你的应用程序的安全数据之间担当“桥梁”或“连接器”。简单的说,Shiro通过Realms来获取相应的安全数据。
Shiro实例
Shiro的安装
Sh
您可能关注的文档
最近下载
- 《包装工程》投稿写作模板 模板使用说明: 1. 请将稿件直接 ....doc
- 百胜包装品工厂质量体系审核纲要及评估细则 V2012.pdf VIP
- 个人信用报告征信详细版纸质版2024年2月最新版带水印可编辑-实线.pdf
- 第三十届WMO省测特训营6年级第二讲——寻找透明的积木.docx VIP
- 第三十届WMO省测特训营6年级第二讲——课后练习题含答案.docx VIP
- 第三十届WMO省测特训营6年级第一讲——课后练习题含答案.pdf VIP
- PBL病例—休克【24页】(最新文档).pptx VIP
- 故事——小羊过桥.ppt
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf
- 食品用包材供应商现场审核方案(检查表).xls VIP
文档评论(0)