Apache Shiro 架构

来源:互联网 发布:网络攻防技术pdf 编辑:程序博客网 时间:2024/05/01 09:04

下图显示了Shiro核心系统架构:


 

l  Subject

与软件系统需要交互的实体(用户、第三方服务、定时器任务等等),在系统中需要进行身份认证的对象。

l  SecurityManager

SecurityManager是Shiro的心脏,可以协调其管理的组件以确保它们能在一起工作。可以为每一个用户提供所需的安全操作。

l  Authenticator

Authenticator是核实用户身份的组件,当用户进行登录时会执行此组件。Authenticator会从一个或多个Realms里获取存储的用户/账号信息,来确保用户身份的真实性。

在进行身份认证时如果配置了多个Realms,可以通过设定认证策略(Authentication Strategy)来定义认证成功或是认证失败的规则。比如是否所有的Realms都认证通过了才算成功,还是第一个认证通过即算成功等等。

l  Authorizer

Authorizer是实现访问控制的组件。可控制用户能够访问应用中的哪些内容,比如资源、Web页面等。Authorizer也可以从多个数据源里获取角色或是权限信息。

l  SessionManager

创建和管理用户会话的生命周期。可以在所有环境下为用户提供一个强健的Session体验。在本安全框架下提供一个本地化的企业级会话管理,可不需要Web/Servlet或EJB容器。

SessionDAO可将会话保存到任何的数据源中,实现Session持久化操作。

l  CacheManager

对Shiro的其他组件提供缓存支持。因为Shiro能够访问多个后台数据源进行身份认证、授权和会话管理,因此需要使用缓存来提高性能。目前任何开源的或商业的缓存产品都能够被放入Shiro框架中来提供一个快速及高效的用户体验。

l  Cryptography

Shiro的crypto包提供了易于使用和理解的加密操作,哈希算法和不同的编码器/解码器的实现。Shiro的CryptoAPI简化了复杂的java机制,使加密这样复杂的安全操作对于普通人也易于使用。

l  Realms

Realms是Shiro与安全数据之间的“桥梁”或“连接器”。你可以根据你的需求配置多个Realm(通常一个数据源就是一个Realm)。当进行身份认证或授权时可以配置好的Realms中获取相关数据,并且访问Realms的策略是可以自定义的。

原创粉丝点击