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

SS中的CSRF,passwordEncoder,authenticationProvider,authenticationManager,securityFilterChain几个概念及调用时机

一、CSRF 令牌(Cross-Site Request Forgery)

作用

防「跨站请求伪造攻击」:比如你登录银行网站后,黑客诱导你点他的链接,利用你的登录状态偷偷转走你的钱,CSRF 令牌就是给每个请求加「专属验证码」,确保请求是你主动发起的,不是黑客伪造的。

什么时候不用

前后端分离项目(Vue/React + Spring Boot)+ JWT 认证时必须禁用:因为 JWT 是放在请求头里的,黑客拿不到;而 CSRF 令牌主要保护「基于 Cookie 的会话认证」,和 JWT 不兼容。


二、核心组件:作用 + 调用时机

组件名核心作用调用时机
passwordEncoder(密码编码器)1. 存密码时:把明文密码(123456)加密成密文($2a$10$xxx)存数据库,防泄露2. 验证时:把用户输入的明文密码加密后,和数据库密文对比- 注册 / 修改密码:调用encode()加密- 登录验证:Spring Security 自动调用matches()对比密码
authenticationProvider(认证提供者)「实际干活的人」:负责查数据库拿用户信息 + 调用 passwordEncoder 验证密码,判断账号密码是否正确登录时(比如调用/api/auth/login):AuthenticationManager 会把认证请求交给它处理
authenticationManager(认证管理器)「调度员」:不自己干活,接收登录请求后,转发给 authenticationProvider 处理,返回认证结果(成功 / 失败)- 登录接口手动调用(比如authManager.authenticate(...))- Spring Security 自动处理表单登录时调用
securityFilterChain(安全过滤链)

「大门保安」:所有请求进来先过它这关,负责:1. 禁用 CSRF、设置无状态会话

2. 判断哪些接口不用登录(比如 /login)、哪些需要

3. 把请求交给 JWT 过滤器验证 Token

项目启动时加载规则,每个 HTTP 请求都会触发它的规则检查

三、一句话串联调用流程(登录场景)

  1. 用户调/api/auth/login传账号密码 →securityFilterChain先检查:这个接口放行,不用认证;
  2. 代码里调用authenticationManager处理登录请求 → 它把请求转给authenticationProvider
  3. authenticationProvider查数据库拿用户密文密码 → 调用passwordEncoder对比用户输入的明文和数据库密文;
  4. 密码正确 → 生成 JWT 返回;密码错误 → 认证失败。

四、补充(JWT 场景的额外调用)

非登录请求(比如/api/invoices):

  1. securityFilterChain检查:这个接口需要认证 → 先调用JwtAuthenticationFilter
  2. 过滤器验证 Token 有效后 → 调用authenticationManager/authenticationProvider加载用户权限;
  3. 最后通过securityFilterChain的权限规则,判断用户是否能访问该接口。

总结

  • CSRF 令牌:保护 Cookie 认证,JWT 场景禁用;
  • passwordEncoder:只干「加密 / 对比密码」一件事;
  • authenticationProvider:实际查库 + 验证密码;
  • authenticationManager:调度认证请求;
  • securityFilterChain:所有请求的第一道安全关卡,管规则、管过滤器。
http://www.jsqmd.com/news/412151/

相关文章:

  • mac安装redis_笔记
  • AI开发-python-milvus向量数据库(2-12 -milvus-向量检索)
  • 以智慧科技,筑就全时段护理守护网
  • 基于COMSOL的拓扑光子晶体光学仿真模型研究:探究一维至三维晶格能带与场分布特性
  • 小白程序员必看:OpenClaw带你体验AI“真正干活”的全新革命!
  • 开源必备:Git 仓库敏感日志文件清理与脱敏教程
  • 掌握Tableau,为大数据分析增添助力
  • 2026执业药师备考前瞻:从机构选择到高效复习,一篇说透 - 品牌测评鉴赏家
  • 向量搜索系统的三个核心优化维度:速度、精度与规模
  • TGDZCalc by Scala(40th)
  • 数据库连接池Druid的最佳实践
  • 【联邦学习高级应用】HIPAA技术专题 原理和实现
  • 【2026免费】基于SpringBoot的社区医院信息平台
  • 2026执业药师培训机构避坑不踩雷,零基础也能高效通关 - 品牌测评鉴赏家
  • Java程序员失业转型大模型开发:3个月实现高薪入职,附副业变现秘籍及104G免费学习资源包(收藏)
  • 北京净水器供应商怎么选?专业科普+5家靠谱品牌推荐 - 小坤哥
  • 执业药师考试培训怎么选?吃透这篇少走弯路 - 品牌测评鉴赏家
  • 小白程序员轻松入门RAG,玩转金融大模型情报分析
  • 题解:AT_arc156_f [ARC156F] Make Same Set
  • 宝妈必看|中国十大童装品牌盘点,安全好看还省心 - 品牌测评鉴赏家
  • 2026深圳春节期间值得一看的12个展览
  • 宝妈必看!2026中国十大童装品牌大揭秘 - 品牌测评鉴赏家
  • 2026年GEO优化服务商深度测评报告:从技术实力到效果落地的TOP5优选指南 - 小白条111
  • 大数据里Zookeeper:数据同步的实现原理
  • 2.25
  • 2026年广州GEO优化培训机构选型指南:从实战效果到服务能力的深度测评 - 小白条111
  • 容器内端口冲突问题
  • 2026年GEO优化工具深度测评:从技术到效果的6大主流品牌选型指南 - 小白条111
  • 无人驾驶-202411-智能驾驶-视觉感知后处理04-车道线检测及后处理04:车道线与辅助驾驶功能
  • Solutions usaco C chn