Shiro概念篇

Author Avatar
cuteximi 9月 19, 2017
  • 在其它设备中阅读本文章

image.png

看博主系列

image.png
Authentication:身份认证,验证用户是不是已经拥有相应的身份;
Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:也就是判断用户能不能做这个事情;
Session Manager:会话管理,即用户登录一次就是一次会话,在没有退出之前,他所有会话的信息都保存会话中;
Cryptography:加密,保护数据的安全性;
Web Support:Web支持,可以很容易集成到web环境;
Concurrency;shiro支持多线程应用的并发验证,即在一个线程中开启另一个线程,能把去权限自动传播过去;
Testing: 提供测试支持;
Run As: 允许一个用户假装另一个用户的身份访问;
Remember Me: 记住我,即一次登录之后,下次登陆再来的话不用在登陆;

shiro不会去维护用户,维护权限;这些需要我们自己去设计/提供;然后通过相应的接口注入给shiro

image.png

直接与代码交互的对象是Subject,也就是说Shiro对外API的核心是Subject
Subject: 主体,代表当前“用户”,所有的Subject都绑定到SecurityManager,都委托给SecurityManager, SUbject相当于门面,而SecurityManager才是实际的执行者;
SecurityManager:我是安全管理器,所有有安全相关的操作,都会交给我来处理,我管理着所有的Subject,我是核心,我负责与其他组件进行交互,你也可以你把我比作springmvc里面的前端控制器,
Realm: 我叫域,Shiro要从我这里获取安全数据(用户,角色,权限),也就是说SecurityManager要验证身份,需要从我这里获取相应用户的身份,也需要从我这里获取权限,可以把我 看作安全数据源;

从上面也可以看出,Shiro不提供维护用户和权限,而是用过Realm让开发人员自己注入;

image.png

Subject: 主体
SecurityManager:心脏
Authentication:认证器
Authorizer: 授权器
Realm:可以有一个或者多个,安全的实体数据源
SessionManager: Shiro并不仅仅可以用在Web环境,也可以用在如普通的JavaSE环境、EJB等环境
SessionDao:
CacheManager:缓存控制器 ,放到 缓存中可以提高访问性能;
Cryptography: 密码模块;

This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:http://blog.cuteximi.com/Shiro概念篇/