Apache Shiro 其实很好用
Shiro 洗白
维基百科这么说:Apache Shiro(读作 sheeroh,即日语 城)是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。我随即谷歌一下关键字 日语 shiro,真是以讹传讹,明明是白色的意思,不知道从哪里开始变成 城
的意思了。白色白(しろ= shiro)ホワイト(White)黑色黒(くろ= kuro )ブラック(Black)红色赤(あか= aka )レッド(Red)
。
读 What is Apache Shiro 有感
- JAAS 缺点很多:绑定了 JVM 底层概念、依赖容器或者有状态EJB、到处都是烦人 Checked 异常(哈哈哈,Checked 异常必须显式 catch,否则编译报错啊)。
- Shiro 好处很多:灵活、易用、易理解、可插拔、WEB 支持好。还提到 POJO-compatible 的配置机制,真的不错哦。
Shiro 短史
- 2004年,Les Hazlewood 和 Jeremy Haile 创办了 Jsecurity。
- 2008年,JSecurity 项目贡献给了 Apache 软件基金会(ASF),并被接纳成为 Apache Incubator 项目。期间,Jsecurity 曾短暂更名为 Ki(读作 Key),随后因商标问题被社区更名为 Shiro。
- 2010年7月,Shiro 社区发布了 1.0 版。
- 2010年9月22日,Shrio 成为 Apache 软件基金会的顶级项目。
可见,历史还是很悠久的,都15岁了。
Shiro 的那些让人记不住的名词
Subject 卤猪蹄
理解框架,首先的理解概念,Shiro的概念挺好理解,就是名字取得差劲了点。什么Subject, Realm,跟单词本身含义一点都挂不上边。
Subject 表示 当前的操作用户
,在安全领域,术语 Subject 可以是人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着 当前跟软件交互的东西。这些解释跟 Subject 这个词感觉靠不上边,所以每次看完隔一段时间,就记不起来了 Subject 是个啥意思。所以,换个方式:Subject -> 主题 -> 猪蹄
,所以从卤猪蹄开始理解 Shiro 的概念。
Realm 真的么
Realm,单词本身是领域、范围的意思,在 Shiro 里面则是桥梁、连接的意思。Realm 充当了 Shiro 与应用安全数据间的 桥梁 或者 连接器。也就是说,当切实与像用户帐户这类安全相关数据进行交互,执行认证(登录)和授权(访问控制)时,Shiro 会从应用配置的Realm中查找很多内容。记不住的话,就记得 real+m(真的么?)你说的你是谁你要去哪里,都是真的么。
Authentication/Authoriztion 认证/授权
就是简单的 你是谁(认证,是不是你)和 你要到哪里去(授权,能不能去),两个词经常容易混淆。Authentication 简称 Authc,Authorization 简称 Authz,对了,必须先认证然后才是授权,所以按照字母顺序,应该是 Authc 然后是 Authz,一下子记住了吧。
RBAC(Role-Based Access Control)基于角色的访问控制
RBAC 就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成 用户-角色-权限 的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论