Shiro介绍及主要流程

什么是Shiro
Apache Shiro是一个强大且灵活的开源安全框架,易于使用且好理解,撇开了搭建安全框架时的复杂性。
Shiro可以帮助我们做以下几件事:

认证使用者的身份
提供用户的访问控制,比如:
决定一个用户是否被授予某个特定的安全角色
决定用户是否允许做某件事
可以在任何环境中使用Session API,不在局限于web或是EJB容器中
可以在认证,访问控制或是session的生命周期的期间中对特定事件产生反应
可以整合多个数据源的用户安全数据到一个统一的用户视图中
支持单点登录
支持’记住我’功能
等等
Apache Shiro的特征
下图展示了Shiro主要的特征:

Primary Cocnerns(基本关注点):Authentication(认证),Authorization(授权),Session Management(会话管理),Cryptography(加密)。

Authentication(认证):经常和登录挂钩,是证明用户说他们是谁的一个工作
Authorization(授权):访问控制的过程,即,决定‘谁’可以访问‘什么
Session Management(会话管理):管理用户特定的会话,即使在非web或是EJB的应用中
Crytography(加密):通过加密算法保证数据的安全,且易于使用
Supporting Features(辅助特性):

Web Support(网络支持):web support API可以帮助在web应用中方便的使用shiro
Caching(缓存):保证安全操作使用快速有效
Concurrency(并发):支持多线程应用
Testing(测试):支持集成单元测试
“Run As”(以…运行):可以假定用户为另一个用户
“Remeber Me”:记住用户,无需再次登录
Authentication和Authenticator的主要流程
Authentication(认证)
与认证流程相关的Shiro各对象关系如下:

以更加清晰的流程图对应上述的步骤:

Authenticator(授权): 与授权相关的Shiro个对象关系如下:

换成流程图对应上述的步骤:

Shiro介绍及主要流程相关推荐

  1. shiro教程(2)- shiro介绍

    shiro教程系列 shiro教程(3)-shiro授权 1 shiro介绍  1.1 什么是shiro Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身 ...

  2. shiro介绍(一)

    一.shiro介绍 1.什么是shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.作为一款安全框架Shiro的设计相当巧妙.Shiro的应用不依 ...

  3. html5/css3响应式布局介绍及设计流程

    html5/css3响应式布局介绍 html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局 ...

  4. 06【群面】(无领导小组)群面基本介绍考察内容流程,群面常见问题解题思路,群面角色分析考官追问

    群面? (无领导小组)群面基本介绍&考察&内容&流程,群面常见问题&解题思路,群面角色分析&考官追问 第一节 群面基本介绍&考察&内容& ...

  5. 一文读懂 Shiro 登录认证全流程

    一文读懂 Shiro 登录认证全流程 登录入口 执行登录 UserRealm Apache Shiro 是 Java 的一个安全框架.Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与 We ...

  6. shiro框架的使用流程

    Shiro框架主要用于应用程序的安全管理,包括认证.授权.会话管理等功能.以下是Shiro框架的具体使用步骤: 引入Shiro依赖:在项目中引入Shiro的相关依赖,例如Shiro-core.Shir ...

  7. 【6】爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel

    爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel 更新时间:2021.9.16 vedio:15,16,17,18,19 ...

  8. linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)

    linux内核开发入门二(内核KO模块介绍.开发流程以及注意事项) 一.什么是内核模块 内核模块:ko模块(Kernel Object Module)是Linux内核中的可加载模块,它可以动态地向内核 ...

  9. Apache shiro介绍

    原文链接Application Security With Apache Shiro(翻译) 前面自己自己配合谷歌翻译,后面大部分谷歌翻译. 当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的jav ...

最新文章

  1. 斯坦福大学统计系教授带你玩转微生物组分析
  2. 【深度学习】深入浅出神经网络框架的模型元件(常用层和卷积层)
  3. 修订版 | 目标检测:速度和准确性比较(Faster R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)...
  4. windows上搭建NFS服务器
  5. 鱼骨图分析法实际案例_会用“鱼骨图”的项目经理无难题
  6. 用SQL语句查看数据库数据量的大小
  7. linux下mysql5.7的安装教程_linux下mysql 5.7.18安装教程 邯郸
  8. 2021年五月下旬推荐文章
  9. 面向对象(程序员最呆的地方,一切皆是对象)
  10. Fashion-MNIST数据集无法下载解决方案
  11. 如何优化项目进度管理
  12. 一文读懂JPEG算法!附C++代码实现JPEG算法,实现从BMP到JPEG转换!
  13. 让笔记本的无线网卡指示灯不再狂闪的方法
  14. 上半年晋升 P8 成功,还买了别墅!
  15. Java学习之代码扫描工具的使用方法
  16. ieda-自动引入局部变量(introduce local variable)快捷键
  17. HDU 6304 Chiaki Sequence Revisited(二分+找规律)
  18. 关于金山词霸的屏幕取词1
  19. matlab去除图像背景,从图像中移除背景(首选MATLAB、Java或Python)
  20. ssh 免账号密码登录

热门文章

  1. / 卡路里_最大卡路里
  2. np.expm1_JavaScript中带有示例的Math.expm1()方法
  3. linux pwm 调屏_Linux驱动学习之:PWM驱动
  4. html侧滑菜单mui,mui侧滑菜单点击含有mui-action-menu类的控件无法实现侧滑
  5. vector 不初始化时什么状态_Vue原理解析(三):初始化时created之前做了什么?...
  6. ruby宝石区块链最新消息_Ruby宝石| Ruby工具
  7. Spring Boot集成Redis,这个坑把我害惨了!
  8. SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右
  9. mysql怎么修改表中的文字_mysql表中怎么修改字段?
  10. 为什么MySQL索引更适合B+树而不是二叉树、B树