当前位置: 首页 > news >正文

九、Spring Boot集成Spring Security之授权概述

文章目录

  • 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口
  • 前言
  • 一、授权概述
  • 二、用户权限
  • 三、用户授权流程
  • 三、Spring Security授权方式
    • 1、请求级别授权
    • 2、方法级别授权

往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口

  • Spring Boot集成Spring Security专栏
  • 一、Spring Boot集成Spring Security之自动装配
  • 二、Spring Boot集成Spring Security之实现原理
  • 三、Spring Boot集成Spring Security之过滤器链详解
  • 四、Spring Boot集成Spring Security之认证流程
  • 五、Spring Boot集成Spring Security之认证流程2
  • 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
  • 七、Spring Boot集成Spring Security之前后分离认证最佳实现
  • 八、Spring Boot集成Spring Security之前后分离认证最佳实现对接测试
  • 九、Spring Boot集成Spring Security之授权概述
  • 十、Spring Boot集成Spring Security之HTTP请求授权

前言

本文介绍什么是授权,Spring Security的授权配置有哪些,配合以下内容观看效果更佳!!!

  • 什么是授权,授权有哪些流程,Spring Security的授权配置有几种?请查看九、Spring Boot集成Spring Security之授权概述
  • HTTP请求授权的实现原理是什么,如何配置HTTP请求授权?请查看十、Spring Boot集成Spring Security之HTTP请求授权
  • 方法授权的实现原理是什么,如何配置方法授权?请查看十一、Spring Boot集成Spring Security之方法授权
  • 如何实现基于RBAC模型的授权方式?请查看十二、Spring Boot集成Spring Security之基于RBAC模型的授权

一、授权概述

​ 授权简单来说就是判断某个用户能不能访问某个接口,可以访问时授权成功,不能访问时授权失败;用户包括已登录的用户和未登录的用户即匿名用户,接口包括接口地址和接口的请求类型,接口对于系统使用者来说可以简单理解为菜单按钮。

​ 目前最流行的权限模型是RBAC权限模型,这种模型的思想是将菜单/接口/权限按照完成某项任务的最小权限进行分组,分出来的组即为角色,再按照用户的职责授予相应的角色。其中菜单/接口/权限和角色之间为多对多的关系,即一项任务可能需要多个操作或者多项任务可能需要同一个操作;用户与角色之间也是多对多的关系,即一个用户可能需要完成多项任务或者不同用户可能需要完成相同的任务。

​ Spring Security的授权还包括对认证结果、接口请求参数、接口返回值等更细粒度的处理。

二、用户权限

​ Spring Security中用户的权限接口为GrantedAuthority,并提供默认实现SimpleGrantedAuthority,SimpleGrantedAuthority有一个String属性role,role用于判断用户是否允许访问接口。

​ 在配置接口权限时还有两个权限的概念role(hasXxxRole)和authority(hasXxxAuthority),role和authority最终都会转化为SimpleGrantedAuthority的role属性,并和用户的权限作对比,以判断用户是否允许访问接口,唯一的区别是role转为SimpleGrantedAuthority的role属性时会默认添加ROLE_前缀,而authority会直接转化为SimpleGrantedAuthority的role属性,即ROLE_{role}={authority}=simpleGrantedAuthority.role。

三、用户授权流程

  1. 认证时设置用户权限
  2. 授权时获取接口及其需要的权限
  3. 校验用户权限和接口权限是否有交集
  4. 有交集时校验成功调用接口
  5. 没有交集时校验失败抛出异常

三、Spring Security授权方式

1、请求级别授权

  1. 实现方式:过滤器
  2. 适用场景
    • 基于URL的访问控制
    • 统一的安全策略
    • 简单地权限控制

2、方法级别授权

  1. 实现方式:AOP(拦截器)
  2. 适用场景
    • 细粒度的访问控制
    • 动态权限检查
    • 基于业务逻辑的权限控制

相关文章:

九、Spring Boot集成Spring Security之授权概述

文章目录 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口前言一、授权概述二、用户权限三、用户授权流程三、Spring Security授权方式1、请求级别授权2、方法级别授权 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口 Spr…...

python之Flask入门—路由参数

语法&#xff1a; /routerName/<string:parameter_name> 其中&#xff1a;routerName代表路由名称<>中的string是参数类型&#xff0c;parameter_name为参数名称 参数类型&#xff1a; &#xff08;1&#xff09; string 接收任何没有斜杠&#xff08;/&#x…...

txt地图格式处理

1、txt地图格式 [属性描述] 坐标系2000国家大地坐标系 几度分带3 投影类型高斯克吕格 计量单位米 带号38 精度0.001 转换参数,,,,,, [地块坐标] 5,475.888,1,测试地块1,面,J50G077061,公路用地,地下, J1,1,113.22222222222222,23.129111721551794 J2,1,113.2722314…...

《数据挖掘:概念、模型、方法与算法(第三版)》

嘿&#xff0c;数据挖掘的小伙伴们&#xff01;今天我要给你们介绍一本超级实用的书——《数据挖掘&#xff1a;概念、模型、方法与算法》第三版。这本书是数据挖掘领域的经典之作&#xff0c;由该领域的知名专家编写&#xff0c;系统性地介绍了在高维数据空间中分析和提取大量…...

GitLab CVE-2024-8114 漏洞解决方案

漏洞 ID 标题严重等级CVE ID通过 LFS 令牌提升权限高CVE-2024-8114 GitLab 升级指南GitLab 升级路径查看版本漏洞查询 漏洞解读 此漏洞允许攻击者使用受害者的个人访问令牌&#xff08;PAT&#xff09;进行权限提升。影响从 8.12 开始到 17.4.5 之前的所有版本、从 17.5 开…...

request和websocket

当然&#xff0c;可以为你详细介绍 FastAPI 中的 Request 对象。Request 对象在 FastAPI 中扮演着重要的角色&#xff0c;负责封装来自客户端的 HTTP 请求信息。了解 Request 对象的使用方法和属性&#xff0c;有助于你更高效地处理请求数据、访问请求上下文以及进行各种操作。…...

一键生成后端服务,MemFire Cloud重新定义开发效率

作为开发者&#xff0c;特别是独立开发者和小团队成员&#xff0c;大家都知道开发的最大难题之一就是搭建后端服务。要让一个应用从零开始&#xff0c;除了前端的开发工作外&#xff0c;还需要考虑数据库、接口、认证、存储等等一系列繁琐的后台工作。而MemFire Cloud这款神器&…...

短视频矩阵的营销策略:批量混剪实现高效传播

在当今的商业环境中&#xff0c;短视频营销已成为企业获得市场份额的关键策略。随着消费者注意力的分散&#xff0c;传统营销方法的效果逐渐减弱。因此&#xff0c;短视频营销的重要性不言而喻。通过短视频&#xff0c;品牌能够以更为生动和直观的方式传递信息&#xff0c;从而…...

朗迪锋亮相2024人因工程与智能系统交互国际会议

2024年11月28日至30日&#xff0c;2024人因工程与智能系统交互国际会议在深圳隆重举办。此次大会以推动我国人因工程学科发展为目标&#xff0c;致力于加强国际学术交流&#xff0c;深入探讨人工智能时代的智能系统交互&#xff0c;旨在培育新质生产力&#xff0c;助力经济社会…...

spring boot3.3.5 logback-spring.xml 配置

新建 resources/logback-spring.xml 控制台输出颜色有点花 可以自己更改 <?xml version"1.0" encoding"UTF-8"?> <!--关闭文件扫描 scanfalse --> <configuration debug"false" scan"false"><springProperty …...

Proteus8.17下载安装教程

Proteus是一款嵌入式系统仿真开发软件&#xff0c;实现了从原理图设计、单片机编程、系统仿真到PCB设计&#xff0c;真正实现了从概念到产品的完整设计&#xff0c;其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等&#xff0c;能够帮助用…...

一次Kafka启动失败引出的问题

背景 Some time&#xff0c;有个现场童鞋说咱的Kafka实例有个broker一直crash&#xff0c;还截图给我看了&#xff0c;大致是Kafka启动加载topic分区日志文件的时候&#xff0c;然后就没了&#xff0c;连个WARN都没有。当然&#xff0c;光看这个截图咱啥都不知道&#xff0c;因…...

mysql 查询所有的触发器

SELECTTRIGGER_SCHEMA AS Database,TRIGGER_NAME AS Trigger,EVENT_OBJECT_TABLE AS Table,EVENT_MANIPULATION AS Event,ACTION_STATEMENT AS Statement FROMinformation_schema.TRIGGERS;创建触发器遇到报错&#xff1a; You do not have the SUPER privilege and binary lo…...

704. 二分查找 C++

文章目录 一、题目链接二、参考代码三、所思所悟 一、题目链接 链接: 704. 二分查找 二、参考代码 int search(const vector<int>& nums, int target) {int left 0; int right nums.size() - 1;//左闭右闭[]while (left < right){int mid (left right) / 2;…...

SpringCloud Seata集成分布式事务管理 事务保护 XA AT两种模式的区别

介绍 阿里巴巴的 Seata&#xff08;Service Aligned Transaction Alternative&#xff09;是一个开源的分布式事务解决方案&#xff0c;旨在解决微服务架构中跨服务、跨数据库的事务一致性问题。它可以帮助开发者管理分布式系统中的全局事务&#xff0c;确保在多个服务之间的事…...

node.js基础学习-querystring模块-查询字符串处理(三)

一、前言 querystring是 Node.js 中的一个内置模块&#xff0c;主要用于处理 URL 查询字符串。它提供了一些实用的方法来解析和格式化查询字符串&#xff0c;使得在处理 HTTP 请求中的查询参数等场景时非常方便。 还可以防止sql注入 二、解析查询字符串&#xff08;parse方法&a…...

电子电气架构 --- 车载网关GW连接外部IP Tester

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

鸿蒙LiteOS的核心架构

鸿蒙LiteOS是华为公司推出的一款面向物联网领域的轻量级操作系统&#xff0c;它专为资源受限设备设计&#xff0c;旨在满足智能穿戴设备、智能家居、智能出行等领域的应用需求。鸿蒙LiteOS不仅能够支持多种硬件平台&#xff0c;还具备超低功耗、快速启动、高安全性等特性&#…...

C语言——实现计算房屋总价

//功能&#xff1a;计算房屋总价 //房屋总价 房屋面积 * 单价 //契税 房屋总价 * 0.15% //印花税 房屋总价 * 0.05% //功能&#xff1a;计算房屋总价 //房屋总价 房屋面积 * 单价 //契税 房屋总价 * 0.15% //印花税 房屋总价 * 0.05%#include<stdio.h>void main()…...

【380】基于springboot的闲置图书分享

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...

__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.

这个警告表明您在使用Vue的esm-bundler构建版本时&#xff0c;未明确定义编译时特性标志。以下是详细解释和解决方案&#xff1a; ‌问题原因‌&#xff1a; 该标志是Vue 3.4引入的编译时特性标志&#xff0c;用于控制生产环境下SSR水合不匹配错误的详细报告1使用esm-bundler…...

Linux入门(十五)安装java安装tomcat安装dotnet安装mysql

安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了&#xff0c;系统很多命…...