下图是高层次的组件图:
Subject:当前执行用户的安全view.Subject实例全都被绑定到SecurityManager.
SecurityManager:用于管理所有的Subject。
Realms:是Shiro和你的应用安全数据之间的一个”桥”。通常就是Dao,用于访问数据。在配置Shiro的时候,最少要指定一个Realm。Shiro提供了许多默认的Realms实现
Subject(org.apache.shiro.subject.Subject):当前交互的特定安全实体。
SecurityManager(org.apache.shiro.mgt.SecurityManager):Shiro的核心,管理Subject。
Authenticator(org.apache.shiro.authc.Authenticator):负责执行认证。他知道怎么处理协调多个Realms。
Authentication Strategy(org.apache.shiro.authc.pam.AuthenticationStrategy):认证策略
Authorizer(org.apache.shiro.authz.Authorizer):决定访问控制的组件,判断用户是否可以做某事。和Authenticator一样,也能够协调处理后端的多数据源。
SessionManager(org.apache.shiro.session.mgt.SessionManager):提供回话管理功能。Shiro默认使用存在的会话机制,如果没有(如非web环境)存在的会话机制,就使用shiro提供的会话机制。
SessionDAO (org.apache.shiro.session.mgt.eis.SessionDAO):SessionDao代表SessionManager来执行Session持久化操作,这使得任何的数据存储可以被插入到会话管理基础设施。
CacheManager (org.apache.shiro.cache.CacheManager):CacheManager创建和管理Cache,这些Cache被Shiro其他组件使用。
Cryptography (org.apache.shiro.crypto.*):简单,易于使用的加密包。
Realms (org.apache.shiro.realm.Realm):是Shiro和你的应用安全数据之间的一个”桥”。