【Shiro】 架构
【Shiro】 架构
Metadata
title: 【Shiro】 架构
date: 2023-01-19 14:38
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Shiro
categories:
- Shiro
keywords:
- Shiro
description: 【Shiro】 架构
【Shiro】 架构
- Subject ( org.apache.shiro.subject.Subject) 当前与软件交互的实体(用户、第 3 方服务、cron 作业等)的特定于安全的“视图”。
- SecurityManager ( org.apache.shiro.mgt.SecurityManager ) 如上所述,它SecurityManager是 Shiro 架构的核心。它主要是一个“保护伞”对象,协调其托管组件以确保它们一起顺利工作。它还管理 Shiro 对每个应用程序用户的视图,因此它知道如何对每个用户执行安全操作。
- Authenticator ( org.apache.shiro.authc.Authenticator ) 这Authenticator是负责执行和响应用户的身份验证(登录)尝试的组件。当用户尝试登录时,该逻辑由Authenticator. 他们Authenticator知道如何与Realms存储相关用户/帐户信息的一个或多个进行协调。从这些Realms中获得的数据用于验证用户的身份,以保证用户确实是他们所说的那个人。
- 身份验证策略( org.apache.shiro.authc.pam.AuthenticationStrategy ) 如果Realm配置了多个,AuthenticationStrategy将协调领域以确定身份验证尝试成功或失败的条件(例如,如果一个领域成功但其他领域失败, 尝试是否成功?必须所有领域都成功吗?只有第一个?)。
- Authorizer ( org.apache.shiro.authz.Authorizer )Authorizer是负责确定应用程序中用户访问控制的组件。它是最终决定是否允许用户做某事的机制。与 一样Authenticator,Authorizer也知道如何与多个后端数据源协调以访问角色和权限信息。使用Authorizer此信息来准确确定是否允许用户执行给定操作。
- SessionManager ( org.apache.shiro.session.mgt.SessionManager )SessionManager知道如何创建和管理用户Session生命周期,为所有环境中的用户提供强大的 Session 体验。这是安全框架领域的一项独特功能——Shiro 能够在任何环境中本地管理用户会话,即使没有可用的 Web/Servlet 或 EJB 容器。默认情况下,Shiro 将使用现有的会话机制(例如 Servlet 容器),但如果没有,例如在独立应用程序或非 Web 环境中,它将使用其内置的企业会话管理来提供相同的编程体验。存在以允许使用SessionDAO任何数据源来保持会话。
- SessionDAO ( org.apache.shiro.session.mgt.eis.SessionDAO )代表SessionDAO执行Session持久性 (CRUD) 操作SessionManager。这允许将任何数据存储插入到会话管理基础结构中。
- CacheManager ( org.apache.shiro.cache.CacheManager )CacheManager创建和管理Cache其他 Shiro 组件使用的实例生命周期。因为 Shiro 可以访问许多后端数据源以进行身份验证、授权和会话管理,所以缓存一直是框架中一流的架构特性,以在使用这些数据源时提高性能。任何现代开源和/或企业缓存产品都可以插入 Shiro,以提供快速高效的用户体验。
- 密码学( org.apache.shiro.crypto.* ) 密码学是对企业安全框架的自然补充。Shiro 的crypto包包含易于使用和理解的加密密码、哈希(又名摘要)和不同编解码器实现的表示。这个包中的所有类都经过精心设计,非常易于使用和理解。任何使用过 Java 的本机加密支持的人都知道它是一种很难驯服的动物。Shiro 的加密 API 简化了复杂的 Java 机制,并使普通人易于使用密码学。
- 领域( org.apache.shiro.realm.Realm ) 如上所述,领域充当 Shiro 和应用程序安全数据之间的“桥梁”或“连接器”。当需要与安全相关数据(如用户帐户)进行实际交互以执行身份验证(登录)和授权(访问控制)时,Shiro 从为应用程序配置的一个或多个领域中查找其中的许多内容。您可以根据Realms需要配置任意多个(通常每个数据源配置一个),Shiro 将根据身份验证和授权的需要与它们进行协调。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蝶梦庄生!
评论