博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shiro(一):Shiro介绍及主要流程
阅读量:4351 次
发布时间:2019-06-07

本文共 977 字,大约阅读时间需要 3 分钟。

什么是Shiro

Apache Shiro是一个强大且灵活的开源安全框架,易于使用且好理解,撇开了搭建安全框架时的复杂性。

Shiro可以帮助我们做以下几件事:

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

Apache Shiro的特征

下图展示了Shiro主要的特征:

887326-20190610192830581-637835328.jpg

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各对象关系如下:
    887326-20190610192900193-179206064.jpg

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

887326-20190610192905590-81029309.jpg

  • Authenticator(授权): 与授权相关的Shiro个对象关系如下:
    887326-20190610192912055-2057525748.jpg

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

887326-20190610192919433-403974497.jpg

转载于:https://www.cnblogs.com/insaneXs/p/10999384.html

你可能感兴趣的文章
互联网史上最伟大的12个网络应用和软件
查看>>
yum安装jdk
查看>>
1127 ZigZagging on a Tree (30 分)树的层次遍历
查看>>
关于UITableView Grouped 头部和尾部的空白留于
查看>>
web.py学习遇到的问题
查看>>
Windows下QT4.8.4编译环境的搭建(转载http://blog.csdn.net/bestgonghuibin/article/details/38933141)...
查看>>
各种光照算法
查看>>
201521123042 《java程序设计》 第八周学习总结
查看>>
python3 “POST data should be bytes or an iterable of bytes...”的解决方法
查看>>
静态方法
查看>>
保护HTTP的安全
查看>>
js 选取子节点时去除非IE浏览器的换行符
查看>>
javascript是一朵奇葩
查看>>
c语言5-1
查看>>
Mycat入门教程
查看>>
关于"无法解析的外部符号"问题的解决
查看>>
【JavaScript】【译】编写高性能JavaScript
查看>>
【随笔】入行必读:互联网行业薪酬等级
查看>>
Android使用开源框架加载图片
查看>>
CLR是怎么加载到内存的?
查看>>