问题_shiro

13.Shiro 的优点

> 简单的身份认证, 支持多种数据源
> 对角色的简单的授权, 支持细粒度的授权(方法级)
> 支持一级缓存,以提升应用程序的性能;
> 内置的基于 POJO 企业会话管理, 适用于 Web 以及非 Web 的环境
> 非常简单的加密 API
> 不跟任何的框架或者容器捆绑, 可以独立运行

简述 Shiro 的核心组件

Shiro 架构 3 个核心组件:
> Subject: 正与系统进行交互的人, 或某一个第三方服务.
所有 Subject 实例都被绑定到(且这是必须的)一个SecurityManager 上。
> SecurityManager: Shiro 架构的心脏, 用来协调内部各安全组件, 管理内部组件实例, 并通过它来提供安全管理的各种服务.

SecurityManager即安全管理器,对全部的subject进行安全管理,它是shiro的核心,负责对所有的subject进行安全管理。
当 Shiro 与一个 Subject 进行交互时, 实质上是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作。
> Realms: 本质上是一个特定安全的 DAO. 当配置 Shiro 时, 必须指定至少一个 Realm 用来进行身份验证和/或授权.
Shiro 提供了多种可用的 Realms 来获取安全相关的数据. 如关系数据库(JDBC), INI 及属性文件等.
可以定义自己 Realm 实现来代表自定义的数据源。

shiro认证过程

创建SecurityManager -> 主体提交认证 -> SecurityManager认证 -> Authenticator认证 -> Realm验证

shiro 授权过程

创建SecurityManager ->主体授权 -> securityManager授权 -> Authorizer授权 ->Realm获取权限数据

---本文结束感谢您的阅读!---