Apache Shiro 体系架构
在最高的概念层次,Shiro 的架构有3个主要的概念:Subject,SecurityManager 和 Realms。
Subject
Subject 实质上是一个当前执行用户的特定的安全“视图”。所有 Subject 实例都被绑定到(且这是必须的)一个 SecurityManager 上。当你与一个 Subject 交互时,那些交互作用转化为与 SecurityManager 交互的特定 subject 的交互作用。
SecurityManager
SecurityManager 是 Shiro 架构的心脏,并作为一种“保护伞”对象来协调内部的安全组件共同构成一个对象图。然而,一旦 SecurityManager 和它的内置对象图已经配置给一个应用程序,那么它单独留下来,且应用程序开发人员几乎使用他们所有的时间来处理 Subject API。
Realms
Realms 担当 Shiro 和你的应用程序的安全数据(保存了用户和密码)之间的“桥梁”或“连接器”。Shiro 可以从多个 Realm 中寻找用户身份或授权数据。
Realm 本质上是一个特定安全的 DAO:它封装了数据源的连接详细信息。当配置 Shiro 时,你必须指定至少一个 Realm 用来进行身份验证和/或授权。SecurityManager 可能配置多个 Realms,但至少有一个是必须的。
Shiro 提供了立即可用的 Realms 来连接一些安全数据源(即目录),如 LDAP、关系数据库(JDBC)、文本配置源,像 INI 及属性文件,以及更多。你可以插入你自己实现的 Realm 实现来代表自定义的数据源。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论