黑马程序员技术交流社区
标题:
对Shiro的个人见解
[打印本页]
作者:
恋爱不如敲代码
时间:
2018-3-30 19:16
标题:
对Shiro的个人见解
一.Shiro的简介
Shiro是一个开源的
java安全控制框架,它为我们提供了
认证
(
Authentication
),
授权
(
Authorization
),会话管理(
Session Management
) 和加密(
Cryptography
)的功能,不论 对
什么程序Shiro都可以提供安全管理服务。Shiro的另一个 优点就是相对于其他 的安全框架来说更简单,例如:
JSecurity、Spring Security、Acegi Security
等。
二.Shiro的主要API
Shiro中的API主要有:Subject ,
SecurityManager 和 realm。
① Subject:是
主体,代表了当前的"用户",这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject, 如网络爬虫,机器人等;是一个 抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会 委托给SecurityManager;可以把Subject认为是一个调用 SecurityManager方法的对象。
② SecurityManager:是安全管理器,就是说所有与安全相关的操作都会与SecurityManager有关,而且它管理者所有的 Subject,
SecurityManager是 Shiro的重要核心,也可以把它看成是springMVC 中的前端控制器。
③ Realm:是Shiro中获取安全数据的域,如果
SecurityManager想要验证用户身份那么就需要先从realm中先获取相应的用 户进行比较来确定身份知否拥有 权限,也可以吧realm看成是一种数据库。
三.Shiro的登录流程:
Shiro的登录流程:
应用程序 -- Subject -- SecurityManager -- Realm -- 安全数据
四.Shiro实现权限的四种方式
1.通过Subject
硬编码进行权限控制(在实际开发中不常用)。
2
.基于UR级别的粗粒度权限控制:在web层中。
3
.基于方法级别的细粒度权限控制:在Service层的方法上,基于注解开发,使用的是Cjlib动态代理。
4.Shiro标签库:直接在页面中不显示用户没有权限的功能,基于jsp页面。
五.Shiro的过滤器
anon
未认证可以访问
authc
认证后可以访问
user
需要特定用户才能访问
perms
需要特定权限才能访问
roles
需要特定角色才能访问
port
需要特定端口才能访问
reset
根据指定
HTTP
请求访问才能访问
六.结语
[size=17.39130401611328px]
Shiro是Apache Incubator 内的一个框架,可让您向应用程序中添加身份验证和授权。它支持不同的身份验证存储方式, 比如 LDAP,Kerberos 和 AD DS。Shiro 最小限度的依赖性再加上它相对简单的配置让它成为了应用程序内安全性框架的 一个很好的选择。
作者:
Yin灬Yan
时间:
2018-4-2 12:50
我来占层楼啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2