shiro安全权限框架的概念及springboot配置的依赖

最近,去了解了一下shiro权限框架的概念和依赖的关系。下面我来说说吧。

shiro权限框架概念

Authentication :身份认证,web应用中就是“登录”过程,就是Shiro框架证明用户的行为的过程(验证用户是否是他们申明的身份)。
Authorization :权限,即Shiro控制用户的访问过程,即确定“谁”可以访问“什么”。
Session Management : 会话管理,管理用户会话,即Shiro在用户登录后会管理用户和应用的会话过程,主要体现在Shiro会控制用户和应用的交互过程,什么能访问,什么不能访问。即使在非Web或EJB应用程序中。
Cryptography :密码学,使用易于使用的加密算法保持数据安全,比如提供用户密码的安全算法。

Shiro俗语:

认证
认证是验证主体身份的过程 - 基本上证明有人真的是他们所说的他们是谁那样。 当认证成功时,应用程序可以信任保证为应用程序期望的对象。

授权
授权,也称为访问控制,是确定用户/主题是否被允许做某事的过程。 通常通过检查和解释主体的角色和权限(见下文),然后允许或拒绝对所请求的资源或功能的访问来实现。

密码crytography
密码是用于执行加密或解密的算法。 该算法通常依赖于称为密钥的一条信息。 并且加密基于密钥而变化的,因此如果没有它,则解密是非常困难的。密码有不同的变化。 块密码对通常具有固定大小的符号块进行工作,而流密码对连续的符号流进行工作。 对称密码使用相同的密钥进行加密和解密,而非对称密码使用不同的密钥。 如果非对称密码中的密钥不能从另一个密钥导出,则可以共享创建公钥/私钥对。

凭据credential
证书是验证用户/主体的身份的一条信息。 在认证尝试期间,一个(或多个)凭证与主体一起提交,以验证提交它们的用户/主题实际上是关联的用户。 证书通常是非常秘密的东西,只有特定用户/主体知道,诸如:密码或PGP密钥或生物特征属性或类似机制。

这个想法是,对于主体,只有一个人会知道正确的证书与该主体“配对”。 如果当前用户/主题提供与存储在系统中的正确凭证相匹配的正确凭证,则系统可以假定并相信当前用户/主题真正是他们所说的。 信任程度随着更安全的凭证类型(例如生物特征签名>密码)而增加。

加密 比如密码加密
密码术是通过隐藏信息或将其转换为废话来保护信息免于不受欢迎的访问的做法,因此没有人能读取它。 Shiro专注于加密技术的两个核心元素:使用公钥或私钥加密数据的密码,以及对密码等数据进行不可逆加密的哈希(也称为消息摘要)。

哈希 哈希算法
哈希函数是输入源(有时称为消息)的单向,不可逆转换,转换为编码的哈希值,有时称为消息摘要。 它通常用于密码,数字指纹或具有底层字节数组的数据。

权限 permission
权限在Shiro中解释:它是一个描述应用程序中的原始功能的语句。 权限是安全策略中的最低级别构造。 他们只定义了应用程序可以做什么。不描述“谁”能够执行的操作。 权限只是一个行为的声明,没有更多。
一些权限的示例:
打开一个文件,查看’/user/list‘网页,打印文档,删除一个用户等

主体 principal
主体是应用程序用户(主题)的任何标识属性。 “标识属性”可以是对您的应用程序有意义的任何内容 - 用户名,姓氏,给定名称,社会安全号码,用户ID等。Shiro还引用了称为主体的主要主体的东西。主要主体是在整个应用程序中唯一标识主题的任何主体。 理想的主要主体是用户名或用户ID,它是RDBMS用户表主键。 应用程序中的用户(主题)只有一个主要主体。

领域 realm
领域是可以访问特定于应用程序的安全数据(如用户,角色和权限)的组件。 它可以被认为是一个安全特定的DAO(数据访问对象)。 领域将这种特定于应用程序的数据转换为Shiro理解的格式,所以Shiro可以提供一个易于理解的主题编程API,无论存在多少数据源或应用程序特定的数据。
领域通常与数据源(例如关系数据库,LDAP目录,文件系统或其他类似资源)具有1对1关联。 因此,领域接口的实现使用数据源特定的API来发现。诸如JDBC,文件IO,Hibernate或JPA或任何其他数据访问API的授权数据(角色,权限等)。

角色 roles
角色的定义可以根据您与谁交谈。 在许多应用程序中,人们使用隐含地定义安全策略的模糊概念。 Shiro更喜欢将角色解释为一个命名的权限集合。 这是一个应用程序唯一名称,聚合一个或多个权限声明。
这是一个比许多应用程序使用的隐式更具体的定义。 如果你选择让数据模型反映Shiro的假设,你会发现将有更多的权力来控制安全策略。

会话 session
会话是在一段时间内与软件系统交互的单个用户/主题相关联的有状态数据上下文。 在主题使用应用程序时,可以从会话中添加/读取/删除数据,并且应用程序可以稍后在必要时使用此数据。 当用户/主题注销应用程序或由于不活动导致超时时,会话将终止。
对于熟悉HttpSession的人来说,Shiro会话的目的也是一样的,除了Shiro会话可以在任何环境中使用,即使没有Servlet容器或EJB容器可用。

主题 subject
主题只是一个奇特的安全术语,基本上意味着应用程序用户的安全特定的“视图”。 主体并不总是需要反映一个人,虽然 - 它可以表示一个外部进程调用您的应用程序,或者可能是一个守护进程系统帐户在一段时间间歇地执行某些事情(如cron作业)。 它基本上是与应用程序做某事的任何实体的表示。

这里是springboot整合thymeleaf,shiro,重点是配置shiro单Realm 实现shiro基本的原理的相关依赖。
在这里插入图片描述

Mysql驱动相关依赖
在这里插入图片描述

Mybatis-plus相关依赖
在这里插入图片描述
Thymeleaf相关依赖
在这里插入图片描述
其它依赖以及插件在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

就这样咯,还有详细的代码就没弄上来了,这个是文档的细节。

猜你喜欢

转载自blog.csdn.net/nan961136007/article/details/87435926