没有合适的资源?快使用搜索试试~ 我知道了~
首页吴天雄--shiro个人总结笔记.doc
本文章共计90页,将近20000多字,共分为十二讲内容。第一讲了解shiro(什么是shiro、shiro的结构体系、核心功能、shiro的架构、shiro的工作流程、RBAC模型),第二讲 用户认证和授权(demo练习),第三讲 JdbcRealm及认证策略,第四讲 与Web集成(shiro+SpringMVC),第五讲 shiro标签,第六讲 自定义Realm(加入整合spring和MyBatis), 第七讲 加密(加密算法、加密过程、加密实现代码),第八讲 记住我,第九讲 缓存管理(代码实现),第十讲 会话管理(session的监听和检测、环境配置),第十一讲 注解开发(简化配置文件),第十二讲 汇总SSM+shiro
资源详情
资源评论
资源推荐
第一讲 了解 shiro
1. 什么是 Shiro?
(1)Apache Shiro 是 Java 的⼀个开源的安全管理(权限)框架。Shiro 可以轻
松的完成:身份认证、授权、加密、会话管理、缓存等功能。
(2)Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 Java SE 环境,
也可以用在 Java EE 环境。功能强大且易用,可以快速轻松地保护任何应用程
序(从最⼩的移动应⽤程序到最大的 Web 和企业应⽤程序)。
(3)方便的与 Web 集成和搭建缓存。
(4)下载 :http://shiro.apache.org/
问题:为什么学习 shiro?
在 的世界中,安全管理框架有 和 。
要依赖于 ,并且比较复杂,学习曲线比较高。Shiro 比较简
单,Shiro 比较独立,既可以在 Java SE 中使用,也可以在 Java EE 中使用,
并且在分布式集群环境下也可以使用。
2. Shiro 的结构体系(功能简介:四大核心功能)
()Authentication:身份认证/登录,验证用户是否合法,是不是拥有
相应的身份,有时也简称为登录
()Authorization:授权,授予谁具有访问某些资源的权限。即权限验
证,验证某个已认证的用户是否拥有某个权限,即判断用户是否能进行什
么操作。如:验证某个用户是否拥有某个角色,或者细粒度的验证某个用
户对某个资源是否具有某个权限。
()Session Management :会话管理,即用户登录后就是一次会话,
在没有退出之前,它的所有信息都在会话中。会话可以是 环境,也
可以是 环境的。用户登录后的用户信息通过
来进行管理,不管是在什么应用中。
()Cryptography:加密,提供常见的一些加密算法,使得在应用中可
以很方便的实现数据安全,保护数据的安全性,并且使用很便捷。如:密
码加密存储到数据库,而不是明文存储。
(): 应用程序支持, 可以非常容易的集成到
应用程序中。
()Caching:缓存,比如用户登录后,其他用户信息、拥有的角色权限
不必每次去查,这样可以提高效率。 提供了对缓存的支持,支持多种
缓存架构,如:,还支持缓存数据库:如 !。
(")#:并发支持,支持多线程并发访问
($)%:测试,单元测试和集成测试
(&) ':支持一个用户在允许的前提下,使用另一身份登录。
(()Remember me:记住我,在会话中记住用户的身份,这是一个非
常常见的功能,即一次登录后,下次再来的话可以立即知道你是哪个用户。
3. Shiro 的架构
3.1 Shiro 架构图(组件)
()Subject:主体,当前与软件进行交互的实体,可以是用户,也可以是
第三方程序, 用于获取主体信息,)* 和 #!*。
()Security Manager: 安全管理器, 架构的核心。由其来协调
管理 Shiro 各个组件之间的工作。
()Authenticator : 认证器,负责验证用户的身份+'
,认证策略
()Authorizer:授权器,负责为合法的用户指定其权限。控制用户可以
访问那些资源。
()Realms 域 :用户通过 来完成相关的安全工作, 是不会去
维护数据信息, 在 Shiro 的工作过程中,数据的查 询和 获取工作 是通过
Realm 从不同的数据源来获取的,Realm 可以去获取数据库信息,文本信息
等,在 Shiro 中可以有一到多个 realm。
3.2 Shiro 的工作流程
Shiro 运 行 流 程 中 , 需 要 3 个 核 心 的 组 件 :
Subject、SecutiryManager、Realm.
(1)Subject :安全校验中,最常见的问题是"当前用户是谁?" "当前用户是否
有权 做 x 事 ?" ,所 以 考虑安 全 校验 过程 最自 然的 方 式 就是基 于 当 前用户 。
Subject 代表了当前“用户”,应用代码直接交互的对象是 Subject,只要得到
Subject
对 象马 上可以做 绝大 多数的
Shiro
操作 (不包括加密,查看架构图得知
加 密 与
subject
不 在 同 一 模 块 中) 。 也 就 是 说 Shiro 的对 外 API 核 心 就 是
Subject。Subject 会将所有交互都会委托给 SecurityManager 。 Subject 是安全管
理中直接操作的对象。
( 2 ) SecurityManager : 安 全 管 理器 ; 即所 有 与安 全有 关 的 操 作 都 会与
SecurityManager 交互,且其管理着所有 Subject;它是 Shiro 的核心,它负责
与 Shiro 的其他组件进行交互,它相当于 SpringMVC 中 DispatcherServlet 的角
色。
(3)Realm :Shiro 从 Realm 获取安全数据(如用户、角色、权限),也就是
说 SecurityManager 要验证用户身份,那么它需要从 Realm 获取相应的用户进行
比较以确定用户身份是否合法;也需要从 Realm 得到用户相应的角色/权限进行
验证用户是否能进行操作;可以把 Realm 看成 DAO(数据访问入口)。
4. RBAC 模型
Role Base Access Controll 基于角色的访问控制。
Shiro 采⽤的安全管理模型。将用户和权限做了解耦。
模型中 3 个主体:用户、角色、权限,每个角色可以有多个权限,每个权
限可以分配给多个角色,每个用户可以有多个角色,每个角色可以分配给多个
用户。两个多对多。至少五张表:用户表、角色表、权限表、用户-角色表、角
色-权限表。
剩余63页未读,继续阅读
com.bear
- 粉丝: 1
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0