SpingSecurity认证流程与使用

news/2024/10/10 15:28:07

1、Security的本质:

SpringSecurity的本质就是一个过滤器链,内部包含了提供各种功能的过滤器,基本案例中的过滤器链如下图所示(仅展示了部分核心过滤器)

UsernamePasswordAuthenticationFilter:负责处理我们在登陆页面填写了用户名密码后的登陆请求。基本案例的认证工作主要有它负责

ExceptionTranslationFilter:处理过滤器链中抛出的任何AccessDeniedException和AuthenticationException

FilterSecurityInterceptor:负责权限校验的过滤器

可以通过Debug查看SpingSecurity过滤器链中有哪些过滤器以及它们的先后顺序

2、Security认证流程

Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息

AuthenticationManager接口:定义了认证Authentication的方法

UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法

UserDetails接口:提供核心用户信息。通过UserDetailsService根据用户名获取处理的用户信息要封装成UserDetails对象返回。然后将这些信息封装到Authentication对象中

UsernamePasswordAuthenticationFilter实现类:实现了我们最常用的基于用户名和密码的认证逻辑,封装Authentication对象

DaoAuthenticationProvider实现类:是AuthenticationManager中管理的其中一个Provider,因为是要访问数据库,所以叫Dao准备

3、Security的实现流程

3.1 第一步

启动一个Springboot项目,并在pom.xml添加对应的Spring Security的相关依赖


org.springframework.bootspring-boot-starter-security

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Set 新增的实用方法

有哪些新的 Set 方法呢? 总共有 7 个新的方法,分别是:intersection() 计算两个 Set 的 交集 union() 计算两个 Set 的 并集 difference() 计算两个 Set 的 差集 symmetricDifference() 取两个 Set 的 差集 的 并集 isSubsetOf() 判断 Set 是否是另一个 Set 的 超集 isDisjoi…

数据库认证有用吗?证书:职场晋升的有力助推器

在当今竞争激烈的就业市场中,拥有专业技能和相关证书成为了脱颖而出的关键。数据库证书便是这样一把开启职业成功之门的金钥匙,它对于找工作和升职加薪有着不可忽视的重要作用。 一、助力求职,脱颖而出 1. 增强竞争力 随着信息技术的飞速发展,各行各业对数据库管理和分析的…

【Ubuntu】在Ubuntu上安装IDEA

【Ubuntu】在Ubuntu上安装IDEA 零、前言 最近换了Ubuntu系统,但是还得是要写代码,这样就不可避免地用到IDEA,接下来介绍一下如何在Ubuntu上安装IDEA。 壹、下载 这一步应该很容易的,直接打开IDEA的下载页面,点击下载即可开始下载:https://www.jetbrains.com.cn/idea/down…

一维数组变二维数组

​前言 当出现相同的参数 根据另一个特定参数来改变数据 改变原因 如下图 出现相同的名字但是版本号不同 下拉框数据是 版本号 改变版本号时候改变这一条数据 所以 一个大数组中分为每个对象 每个对象两个参数 第一个参数: 是选中的版本号 第二个参数是相同名字的数据组成…

实验二 C语言分支与循环基础应用编程-1

task1.c #include <stdio.h> #include <stdlib.h> #include <time.h>#define N 5 #define N1 397 #define N2 476 #define N3 21int main(){ int cnt; int random_major,random_no; srand(time(NULL));//以当前系统时间作为随机种子 cnt=0; while(cnt<N){…

SIGGRAPH Asia 2024 | 网易伏羲研究成果入选,3D面部动画技术再获新突破

近日,国际计算机图形与交互技术顶会SIGGRAPH Asia 2024公布论文接收结果:网易伏羲最新研究成果《FreeAvatar: Robust 3D Facial Animation Transfer by Learning an Expression Foundation Model》成功入选。今年12月,SIGGRAPH Asia 2024大会将在日本东京举行,届时网易伏羲…

Docker:更改Docker默认IP网段

问题今天部署服务时遇到一个问题:内网网段都是互通的,但是我的这台服务器(16网段)访问不到(17网段)的系统服务,使用宿主机 ping命令 也是失败的,但是其他同网段服务器(16网段)是可以访问到(17网段)服务的,后来经过排查,发现docker启动的默认网段与 17网段 冲突,…

深入解析 DolphinScheduler 任务调度、拆分与执行全流程

Apache DolphinScheduler介绍 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Dag背景知识 摘录了一下Dag的offical定义A graph is formed by verti…