细说shiro之二:组件架构

Posted dousnl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了细说shiro之二:组件架构相关的知识,希望对你有一定的参考价值。

官网:https://shiro.apache.org/
技术分享图片


技术分享图片

Shiro主要组件包括:Subject,SecurityManager,Authenticator,Authorizer,SessionManager,CacheManager,Cryptography,Realms。


1. Subject
Subject表示与系统交互的对象,可以是登录系统的操作用户,也可能是另外一个软件系统。
Subject类图:
技术分享图片

2. SecurityManager
SecurityManager是Shiro架构最核心的组件。实际上,SecurityManager就是Shiro框架的控制器,协调其他组件一起完成认证和授权,如下图所示:
技术分享图片

SecurityManager类图:
技术分享图片

3. Authenticator
Authenticator用于认证,协调一个或者多个Realm,从Realm指定的数据源取得数据之后进行执行具体的认证。
见org.apache.shiro.authc.pam.ModularRealmAuthenticator源码:
技术分享图片

Authenticator类图:
技术分享图片

4. Authorizer
Authorizer用户访问控制授权,决定用户是否拥有执行指定操作的权限。
见org.apache.shiro.authz.ModularRealmAuthorizer源码:
技术分享图片

Authorizer类图:
技术分享图片

5. SessionManager
Shiro与生俱来就支持会话管理,这在安全类框架中都是独一无二的功能。即便不存在web容器环境,shiro都可以使用自己的会话管理机制,提供相同的会话API。
SessionManager类图:
技术分享图片

6. CacheManager
缓存组件,用于缓存认证信息等。
CacheManager类图:

技术分享图片

7. Cryptography
Shiro提供了一个加解密的命令行工具jar包,需要单独下载使用。
详见:https://shiro.apache.org/download.html

 

8. Realms
Realm定义了访问数据的方式,用来连接不同的数据源,如:LDAP,关系数据库,配置文件等等。
Realm类图:
技术分享图片




























以上是关于细说shiro之二:组件架构的主要内容,如果未能解决你的问题,请参考以下文章

细说shiro之三:在独立应用中使用shiro

细说shiro之六:session管理

细说shiro之六:session管理

细说shiro之六:session管理

细说shiro之在web应用中使用shiro

细说shiro之五:在spring框架中集成shiro