spring-security-学习笔记-01-基本概念

Spring Security OAuth2.0认证授权

文章目录

  • Spring Security OAuth2.0认证授权
  • 配套资源
  • 1.基本概念
    • 1.1.什么是认证
    • 1.2 什么是会话
    • 1.2 什么是授权
    • 1.3 授权的数据模型
    • 1.4 RBAC
      • 1.4.1 基于角色的访问控制
      • 1.4.2 基于资源的访问控制

配套资源

企业开发首选的安全框架Spring Security深入浅出
完整视频:http://yun.itheima.com/course/605.html?2003sxk
配套资料:https://pan.baidu.com/s/1ngq89PvQPCZIUqVxbq4WPQ 提取码:uzos

2天快速入门Spring Security OAuth2.0认证授权
完整视频:http://yun.itheima.com/course/597.html?2003sxk
配套资料:https://pan.baidu.com/s/1w2MRKuQAdJx-eki_4CAK7w 提取码:6vc5

1.基本概念

1.1.什么是认证

  认证 :用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信 息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手 机短信登录,指纹认证等方式。

1.2 什么是会话

  用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保证在会话中。会话就是系统为了保持当前 用户的登录状态所提供的机制,常见的有基于session方式、基于token方式等。
   基于session的认证方式如下图:
  它的交互流程是,用户认证成功后,在服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的 sesssion_id 存放到 cookie 中,这样用户客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数 据,以此完成用户的合法校验,当用户退出系统或session过期销毁时,客户端的session_id也就无效了。
在这里插入图片描述

  基于token方式如下图:
  它的交互流程是,用户认证成功后,服务端生成一个token发给客户端,客户端可以放到 cookie 或 localStorage 等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份。
在这里插入图片描述

1.2 什么是授权

为什么要授权?
   认证是为了保证用户身份的合法性,授权则是为了更细粒度的对隐私数据进行划分,授权是在认证通过后发生的, 控制不同的用户能够访问不同的资源。
  授权: 授权是用户认证通过根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常访问,没有 权限则拒绝访问。

1.3 授权的数据模型

  如何进行授权即如何对用户访问资源进行控制,首先需要学习授权相关的数据模型。
  授权可简单理解为Who对What(which)进行How操作,包括如下:
  Who,即主体(Subject),主体一般是指用户,也可以是程序,需要访问系统中的资源。
  What,即资源 (Resource),如系统菜单、页面、按钮、代码方法、系统商品信息、系统订单信息等。系统菜单、页面、按 钮、代码方法都属于系统功能资源对于web系统每个功能资源通常对应一个URL;系统商品信息、系统订单信息 都属于实体资源(数据资源),实体资源由资源类型资源实例组成,比如商品信息为资源类型,商品编号 为001 的商品为资源实例。
   How,权限/许可(Permission),规定了用户对资源的操作许可,权限离开资源没有意义, 如用户查询权限、用户添加权限、某个代码方法的调用权限、编号为001的用户的修改权限等,通过权限可知用户 对哪些资源都有哪些操作许可。
  主体、资源、权限关系如下图:
在这里插入图片描述

主体、资源、权限相关的数据模型如下:
主体(用户id、账号、密码、…)
资源(资源id、资源名称、访问地址、…)
权限(权限id、权限标识、权限名称、资源id、…)
角色(角色id、角色名称、…)
角色和权限关系(角色id、权限id、…)
主体(用户)和角色关系(用户id、角色id、…)

主体(用户)、资源、权限关系如下图
在这里插入图片描述
通常企业开发中将资源和权限表合并为一张权限表,如下:
资源(资源id、资源名称、访问地址、…)
权限(权限id、权限标识、权限名称、资源id、…)
合并为: ==》
权限(权限id、权限标识、权限名称、资源名称、资源访问地址、…)
修改后数据模型之间的关系如下图:
在这里插入图片描述

1.4 RBAC

如何实现授权?业界通常基于RBAC实现授权。

1.4.1 基于角色的访问控制

  RBAC基于角色的访问控制(Role-Based Access Control)是按角色进行授权,比如:主体的角色为总经理可以查 询企业运营报表,查询员工工资信息等,访问控制流程如下:
在这里插入图片描述
根据上图中的判断逻辑,授权代码可表示如下:

if(主体.hasRole("总经理角色id")){ 查询工资 
}

  如果上图中查询工资所需要的角色变化为总经理和部门经理,此时就需要修改判断逻辑为“判断用户的角色是否是 总经理或部门经理”,修改代码如下:

if(主体.hasRole("总经理角色id") || 主体.hasRole("部门经理角色id")){ 查询工资 
}

根据上边的例子发现,当需要修改角色的权限时就需要修改授权的相关代码,系统可扩展性差

1.4.2 基于资源的访问控制

  RBAC基于资源的访问控制(Resource-Based Access Control)是按资源(或权限)进行授权,比如:用户必须 具有查询工资权限才可以查询员工工资信息等,访问控制流程如下:
在这里插入图片描述

根据上图中的判断,授权代码可以表示为:

if(主体.hasPermission("查询工资权限标识")){ 查询工资 
}

优点:系统设计时定义好查询工资的权限标识,即使查询工资所需要的角色变化为总经理和部门经理也不需要修改 授权代码,系统可扩展性强。

  权限精度不同,需要进行的操作也不同。角色权限的精度比资源权限精度小,精度越高,权限控制相对方便些。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于HC-SR04传感器的避障机器人设计与实现

本文介绍了如何设计和实现一个基于HC-SR04超声波传感器的避障机器人。我们将详细讨论硬件和电路连接,并提供完整的Arduino代码。该机器人可以利用超声波传感器检测周围的障碍物,并采取相应的动作进行避障,实现自主导航。 引言: 避…

伦敦大学学院、UC伯克利联手,撰文综述深度强化学习泛化研究

来源:机器之心编辑:陈萍强化学习应用广泛,但为何泛化这么难?如果要在现实世界的场景中部署强化学习算法,避免过度拟合至关重要。来自伦敦大学学院、UC 伯克利机构的研究者撰文对深度强化学习中的泛化进行了研究。强化学…

spring-security-学习笔记-02-基于Session的认证方式

spring-security-学习笔记-02-基于Session的认证方式 文章目录spring-security-学习笔记-02-基于Session的认证方式2 基于Session的认证方式2.1 认证流程2.2.创建工程2.2.1 创建maven工程2.2.2 Spring 容器配置2.2.3 servletContext配置2.2.4 加载 Spring容器2.3.实现认证功能2…

2021 年不可错过的 40 篇 AI 论文,你都读过吗?

来源:机器之心编辑:蛋酱虽然世界仍在从新冠疫情的破坏中复苏,人们无法向从前那样时常线下相聚、共同探讨交流关于学术领域的最新问题,但AI研究也没有停下跃进的步伐。转眼就是2021年底了,一年就这么就过去了&#xff0…

spring-security-学习笔记-03-spring-security快速上手

spring-security-学习笔记-03-spring-security快速上手 文章目录spring-security-学习笔记-03-spring-security快速上手3-spring-security快速上手3.1 Spring Security介绍3.2 创建工程3.2.1 创建maven工程3.2.2 spring容器配置3.2.3 Servlet Context配置3.2.4 加载 Spring容器…

所有的科学知识都是不确定的

理查德菲利普费曼(Richard Phillips Feynman),1918年5月11日—1988年2月15日,美国著名理论物理学家,1965年,因在量子电动力学方面的成就而获得诺贝尔物理学奖。来源:科学技术哲学一、不存在决定…

2.1.1物理层基本概念

2.1.1物理层基本概念 文章目录2.1.1物理层基本概念

神经网络为大脑如何运作提供新见解

来源:ScienceAI编辑:萝卜皮单细胞空间转录组学(sc-ST)有望阐明复杂组织的结构方面。此类分析需要通过将 sc-ST 数据集中的细胞类型与单细胞 RNA-seq 数据集集成来对它们进行建模。然而,这种整合并非微不足道&#xff0…

2.1.2数据通信基础知识

文章目录2.1.2数据通信基础知识0 思维导图1. 典型的数据通信模型2 数据通信相关术语3 三种通信方式4 两种数据传输方式2.1.2数据通信基础知识 0 思维导图 1. 典型的数据通信模型 2 数据通信相关术语 3 三种通信方式 4 两种数据传输方式

一文读懂MEMS技术4大主要分类及应用领域

来源:传感器专家网MEMS传感器是在微电子技术基础上发展起来的多学科交叉的前沿研究领域。经过四十多年的发展,已成为世界瞩目的重大科技领域之一。它涉及电子、机械、材料、物理学、化学、生物学、医学等多种学科与技术,具有广阔的应用前景。…

2.1.3码元、波特、速率、带宽

2.1.3码元、波特、速率、带宽 文章目录2.1.3码元、波特、速率、带宽0 思维导图1.码元2. 速率,波特,带宽练习题0 思维导图 1.码元 2. 速率,波特,带宽 练习题

模拟电路人工智能神经网络的前景

ISTOCKPHOTO来源:IEEE电气电子工程师未来驱动人工智能的一些最佳电路可能是模拟电路,而不是数字电路,世界各地的研究团队正在越来越多地开发支持此类模拟人工智能的新设备。在驱动AI当前爆炸的深层神经网络中,最基本的计算是乘法累…

CSS-盒子模型

CSS盒子模型 盒子模型解释 元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用实现中盒子来做比喻,帮助我们设置元素对应的样式。盒子模型示意图如下: 把元素叫做盒子,设置对应的样式分别为: 盒…

2.1.4 ★(考察计算能力)奈氏准则和香农定理

2.1.4 奈氏准则和香农定理 文章目录2.1.4 奈氏准则和香农定理0.思维导图1. 失真2. 失真的一种现象--码间串扰3.奈氏准则(奈奎斯特定理)4. 奈氏准则(奈奎斯特定理)-练5. 香农定理6. 香农定理-例题7. “nice”和“香浓”对比0.思维导图 1. 失真 2. 失真的一种现象–码间串扰 3.奈…

未来哲学的六个问题域

来源:中科院哲学所作者:约翰R塞尔(John R. Searle)译者:GTY约翰塞尔生于1932年,当代著名哲学家,现为美国加州大学伯克利分校Slusser哲学教授,在语言哲学、心灵哲学和社会哲学领域贡献…

2.2_ 4_ FCFS、SJF、 HRRN调度算法

文章目录知识总览先来先服务短作业优先高响应比优先知识回顾和重要考点知识总览 先来先服务 短作业优先 高响应比优先 知识回顾和重要考点

当AI学会高数:解题、出题、评分样样都行

来源:AI科技评论“高等数学里程碑式的研究”,114页论文让AI文理双修,也许不久后机器出的高数试卷就会走进高校课堂,这下可以说“高数题不是人出的了”。人工智能虽然给我们带来了诸多便利,但也不免受到了各种质疑。在互…

2.3_ 1_ 进程同步、进程互斥

2.3_ 1_ 进程同步、进程互斥 文章目录2.3_ 1_ 进程同步、进程互斥1.知识概览2.什么是进程同步?2.什么是进程互斥3.知识回顾1.知识概览 2.什么是进程同步? 2.什么是进程互斥 3.知识回顾

IEEE Fellow李世鹏 :人工智能与机器人前沿研究之思考

来源:AI科技评论作者:维克多编辑:青暮2021年12月9日,由粤港澳大湾区人工智能与机器人联合会、雷峰网合办的第六届全球人工智能与机器人大会(GAIR 2021)在深圳正式启幕,140余位产学领袖、30位Fel…

2.3.2. 进程互斥的软件实现方法

2.3.2. 进程互斥的软件实现方法 文章目录2.3.2. 进程互斥的软件实现方法1.知识总览2.单标志法3.双标志先检查法4.双标志后检查法5. perterson算法6. 知识回顾1.知识总览 2.单标志法 3.双标志先检查法 4.双标志后检查法 5. perterson算法 6. 知识回顾