【Spring Security】4.DefaultSecurityFilterChain

首先在源代码中找到这个类,shift + shift 可进行全局搜索

image-20240306113159465

可以发现这个类实现了SecurityFilterChain

image-20240306113239432

默认情况下,SpringSecurity程序有一个默认的过滤器链,这一个默认的过滤器链里,有一系列默认的过滤器的集合

应用程序启动后,日志中有一行是和DefaultSecurityFilterChain相关的

image-20240306113456861

然后把这一行完整的复制下来,放到一个记事本中

这就是spring应用程序默认加载的16个过滤器

o.s.s.web.DefaultSecurityFilterChain     : Will secure any request with [
org.springframework.security.web.session.DisableEncodeUrlFilter@5d152bcd, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@43cb5f38, 
org.springframework.security.web.context.SecurityContextHolderFilter@4684240f, 
org.springframework.security.web.header.HeaderWriterFilter@115ca7de, 
org.springframework.web.filter.CorsFilter@6435fa1c, 
org.springframework.security.web.csrf.CsrfFilter@31f295b6, 
org.springframework.security.web.authentication.logout.LogoutFilter@478b0739, 
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@72bd2871, 
org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@2e4389ed, 
org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@7944b8b4, 
org.springframework.security.web.authentication.www.BasicAuthenticationFilter@413bef78, 
org.springframework.security.web.savedrequest.RequestCacheAwareFilter@6975fb1c, 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@553da911, 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter@d7bbf12, 
org.springframework.security.web.access.ExceptionTranslationFilter@63f6bed1, 
org.springframework.security.web.access.intercept.AuthorizationFilter@25f61c2c
]

另一个方法:打开DefaultSecurityFilterChain这个类,然后在这个类中设置一个断点

这里有一个构造方法,构造方法里有一个filters(过滤器列表),这个过滤器列表是当前这个类的一个成员,这一行过滤器列表会被赋值。

image-20240306113926637

向下执行一步,可以看见filters被赋值了。SecurityFilterChain接口的实现,加载了默认的16个Filter。

其中这些过滤器就有实现用户认证功能的,有实现授权功能的,还有实现系统的攻击防御功能的。

image-20240306114053807

帮助我们校验用户名和密码是否正确的方式来决定是否给这个用户进行一个验证,从而让他登录到系统的主页面中

image-20240306114146340

给我们展示一个Login配置登录页的过滤器

image-20240306114309425

帮助我们展示一个登出页面的过滤器

image-20240306114331421

帮助我们实现默认登出流程

image-20240306114355685

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

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

相关文章

备忘,LangChain建立本地知识库的几个要点

本地知识库可以解决本地资源与AI结合的问题,为下一步应用管理已有资产奠定基础。 本地知识库的建立可参考LangChain结合通义千问的自建知识库 (二)、(三)、(四) 本文主要记录两个方面的问题 1 搭…

分布式 SpringCloudAlibaba、Feign与RabbitMQ实现MySQL到ES数据同步

文章目录 ⛄引言一、思路分析⛅实现方式⚡框架选择 二、实现数据同步⌚需求分析⏰搭建环境⚡核心源码 三、测试四、源码获取⛵小结 ⛄引言 本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助…

OJ在线比赛系统(人员管理、赛题发布、在线提交、题目审核、成绩录入)

系统功能设计 技术栈:springboot,jdk8,vue3,element-plus,mybatis-plus 1.java后端系统 首先需要学生通过前端注册页面和java后端系统将个人信息写入数据库,包含学号、姓名、班级以及需要爬取网站的相关信息(例如AtCoder账号信…

(表征学习论文阅读)A Simple Framework for Contrastive Learning of Visual Representations

Chen T, Kornblith S, Norouzi M, et al. A simple framework for contrastive learning of visual representations[C]//International conference on machine learning. PMLR, 2020: 1597-1607. 1. 前言 本文作者为了了解对比学习是如何学习到有效的表征,对本文所…

JdbcTemplate

1.JdbcTemplate概述 它是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,…

rpc的通信流程

rpc能实现调用远程方法就跟调用本地(同一个项目中的方法)一样,发起调用请求的那一方叫做服务调用方,被调用的一方叫做服务提供方。 接下来就和大家分享一下调用过程的流程和细节。 传输协议 既然是远程调用那肯定就需要通过网络…

探索Python爬虫:解析网页数据的神奇之旅

在当今数字化时代,信息的获取变得比以往任何时候都更加便捷。然而,即使在互联网上,获取数据也需要通过正确的工具和技术。Python爬虫就是这样一种强大的工具,它可以让我们轻松地从互联网上收集数据,并将其转化为有用的…

格雷希尔GripSeal用于自动化机械手抓取的防爆阀快速连机器,提高新能源电池包的生产效能

透气防爆阀是当新能源车PACK电池包内部气压过高时,可以释放内部气体避免电池包因压力过高而引发爆炸的安全装置。而新能源汽车在当今社会的普及度越来越高,自动化生产成为了汽车行业的常态,因此,透气防爆阀在进行自动化气密性测试…

如何在 Windows上安装 Python

系列文章目录 作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒…

Cesium中加载GaussianSplatting模型

Gaussian Splatting Gaussian Splatting (高斯泼溅) 是近段时间,三维视觉领域热度极高的一项突破性工作。 2020 年提出的 NeRF 等辐射场方法彻底改变了多张照片或视频主导的场景新视角合成的算法生态,但训练、渲染的速度与质量仍存在瓶颈。Gaussian Sp…

算法——哈希表

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 此篇文章与大家分享分治算法关于哈希表相关算法的专题 如果有不足的或者错误的请您指出! 1.哈希表简介 哈希实际上可以简单认为是一个存储数据的容器,用于快速查找某个元素,时间复杂度仅为O(1),怎…

A股风格因子看板(2024.4第1期)

该因子看板跟踪A股风格因子,该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子,用以分析市场风格切换、组合风格景 露等。 今日为该因子跟踪第1期,指数组合数据截止日2024-03-31,要点如下 近1年A股风格因子收益走…