Shiro(一):shiro简介

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Shiro(一):shiro简介

一、权限基础

两个基本的概念


安全实体:就是被权限系统保护的对象,比如工资数据。

权限:就是需要被校验的行为,比如查看、修改等。

分配权限:


把对某些安全实体的某些权限分配给某些人员。

是向数据库里面添加数据、或是维护数据的过程

权限验证(权限匹配):


判断某个人员或程序对某个安全实体是否拥有某个或某些权限。

从数据库中获取相应数据进行匹配的过程。


权限的继承性:如果多个安全实体存在包含关系,而某个安全实体没有权限限制,则它会继承包含它的安全实体的相应权限。


权限的最近匹配原则:如果多个安全实体存在包含关系,而某个安全实体没有权限限制,那么它会向上寻找并匹配相应权限限制,直到找到一个离这个安全实体最近的拥有相应权限限制的安全实体为止。如果把整个层次结构都寻找完了都没有匹配到相应权限限制的话,那就说明所有人对这个安全实体都拥有这个相应的权限限制。


二、Shiro 简介


Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能

Shiro 能做什么


1、认证:验证用户的身份

2、授权:对用户执行访问控制:判断用户是否被允许做某事

3、会话管理:在任何环境下使用 Session API,即使没有 Web 或EJB 容器。

4、加密:以更简洁易用的方式使用加密功能,保护或隐藏数据防止被偷窥

5、Realms:聚集一个或多个用户安全数据的数据源

6、单点登录(SSO)功能。

7、为没有关联到登录的用户启用 “Remember Me“ 服务


三、Shiro的主要功能


屏幕快照 2022-05-10 上午11.46.31.png


Shiro 的四大核心部分


Authentication(身份验证):简称为“登录”,即证明用户是谁。

Authorization(授权):访问控制的过程,即决定是否有权限去访问受保护的资源。

Session Management(会话管理):管理用户特定的会话,即使在非 Web 或 EJB 应用程序。

Cryptography(加密):通过使用加密算法保持数据安全

shiro 还提供以下扩展:


Web Support:主要针对web应用提供一些常用功能。


Caching:缓存可以使应用程序运行更有效率。

Concurrency:多线程相关功能。

Testing:帮助我们进行测试相关功能

“Run As”:一个允许用户假设为另一个用户身份(如果允许)的功能,有时候在管理脚本很有用。

” Remember Me ” :记住用户身份,提供类似购物车功能。

四、Shiro 架构 3 个核心组件

屏幕快照 2022-05-10 上午11.46.16.png

- Subject :正与系统进行交互的人,或某一个第三方服务。所有 Subject 实例都被绑定到(且这是必须的)一个SecurityManager 上。

- SecurityManager:Shiro 架构的心脏,用来协调内部各安全组件,管理内部组件实例,并通过它来提供安全管理的各种服务。当 Shiro 与一个 Subject 进行交互时,实质上是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作。

- Realms :本质上是一个特定安全的 DAO。当配置 Shiro 时,必须指定至少一个 Realm 用来进行身份验证和/或授权。Shiro 提供了多种可用的 Realms 来获取安全相关的数据。如关系数据库(JDBC),INI 及属性文件等。可以定义自己 Realm 实现来代表自定义的数据源。


五、Shiro 架构


屏幕快照 2022-05-10 上午11.45.50.png

Authenticator :执行对用户的身份验证(登录)的组件。Authenticator 从一个或多个 Realm 中获得数据以验证用户的身份。

若存在多个realm,则接口 AuthenticationStrategy 会确定什么样算是验证成功(例如,如果一个 Realm 成功,而其他的均失败,是否登录成功)。

Authorizer :验证用户能否访问应用中的受保护的资源

SessionManager :可在任何应用或架构层一致地使用 Session API

SessionDAO:SessionManager 执行 Session 持久化(CRUD)操作。

CacheManager :对 Shiro 组件提供缓存支持。

Cryptography:Shiro 的 API 大幅度简化 Java API 中繁琐的密码加密

Realms:Shiro 通过 Realms 来获取相应的安全数据


目录
相关文章
|
1月前
|
安全 Java 程序员
shiro学习三:shiro的源码分析
这篇文章是关于Apache Shiro安全框架的源码分析,主要探讨了Shiro的认证流程和自定义Realm的实现细节。
37 0
shiro学习三:shiro的源码分析
|
缓存 数据库 数据安全/隐私保护
【Shiro】第三章 Shiro入门(四)
【Shiro】第三章 Shiro入门(四)
82 0
|
存储 缓存 安全
Shiro学习之Shiro简介
Shiro学习之Shiro简介
107 0
|
Java API 数据库
Shiro学习之Shiro基本使用(1)
Shiro学习之Shiro基本使用(1)
89 0
|
Java 数据库 数据安全/隐私保护
Shiro学习之Shiro基本使用(2)
Shiro学习之Shiro基本使用(2)
57 0
|
存储 数据采集 缓存
Shiro简介
.什么是Shiro - .ApacheShiro 是一个Java的安全(权限)框架。 - .Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。 - .Shiro可以完成,认证,授权,加密,会话管理,Web集成,缓存等。
Shiro简介
|
SQL 安全 Java
Shiro - 基础篇(下)
Shiro - 基础篇(下)
116 0
Shiro - 基础篇(下)
|
缓存 Java 数据库
Shiro - 基础篇(上)
Shiro - 基础篇(上)
155 0
Shiro - 基础篇(上)
|
存储 安全 Java
shiro简介
shiro是apache提供的强大而灵活的开源安全框架,它主要用来处理身份认证,授权,企业会话管理和加密。 通俗的讲,shiro的身份认证和授权就是拦截用户未登陆或者没有相应权限的越权访问。 Shiro的企业会话管理实际就是session管理,shiro的session管理可以自定义Session存储的方式,保存到内存、文件、数据库都可以,与传统tomcat等容器无关。
|
缓存 安全 Java
Shiro框架详解 tagline
之间工作中曾经用到过shiro这个权限控制的框架,之前一直都是停留在用的方面,没有过多的 去理解这方面的知识,现在有时间,专门研究了一下这个Shiro权限的框架使用。
Shiro框架详解 tagline