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

Spring Security认证流程

认证是Spring Security的核心功能之一,Spring Security所提供的认证可以更好地保护系统的隐私数据与资源,只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置,开发者也可以根据自己实际的环境进行自定义身份认证配置。下面对Spring Security的认证流程以及自定义认证进行讲解。

用户认证就是判断一个用户的身份是否合法的过程,用户访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,否则拒绝其访问。

Spring Security的认证流程进行详细介绍。

① 用户提交用户名和密码进行认证请求后,被SecurityFilterChain中的 UsernamePasswordAuthenticationFilter过滤器获取到,将用户名和密码封装到UsernamePasswordAuthenticationToken对象中,该对象为Authentication的实现类。

② 过滤器将封装用户名和密码的Authentication对象提交至AuthenticationManager(认证管理器)进行认证。

③ AuthenticationManager根据当前的认证类型进行认证,认证时会根据提交的用户信息最终返回一个SpringSecurity的UserDetails对象,如果返回的UserDetails对象为空,则说明认证失败,抛出异常。 

④ 如果返回的UserDetails对象不为空,则返回UserDetails对象,最后AuthenticationManager 认证管理器返回一个被填充满了信息的Authentication 实例,包括权限信息, 身份信息,细节信息,但密码通常会被移除。

⑤ SecurityContextHolder安全上下文容器存放填充了信息的Authentication,认证成功后通过 SecurityContextHolder.getContext().setAuthentication()方法,将Authentication设置到其中。 

 

http://www.xdnf.cn/news/1707.html

相关文章:

  • LabVIEW实现Voronoi图绘制功能
  • 【MQ篇】初识RabbitMQ保证消息可靠性
  • 信息系统项目管理工程师备考计算类真题讲解七
  • KMS工作原理及其安全性分析
  • Java Agent 注入 WebSocket 篇
  • java方法引用
  • kotlin和MVVM的结合使用总结(二)
  • 一种Spark程序运行指标的采集与任务诊断实现方式
  • CE第二次作业
  • NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve
  • Git 的基本概念和使用方式
  • C++跨平台开发要点
  • Spring AI 核心概念
  • 【Linux】网络基础和socket
  • HGDB安全版单机修改用户密码
  • spring-ai使用Document存储至milvus的数据结构
  • dockercompose文件仓库
  • [Java]动态代理
  • CSS基础
  • Ubuntu系统下交叉编译iperf3
  • 项目管理:企业战略落地的引擎与未来竞争力的核心密码
  • 力扣面试150题--基本计算器
  • 如何将极狐GitLab 合并请求导出为 CSV?
  • 基于深度学习和单目测距的前车防撞及车道偏离预警系统
  • 凸优化理论记录
  • 【Rust 精进之路之第24章错误处理·实践】错误处理策略与 `anyhow`:简化应用层错误管理
  • Redis 有序集合 ZSet 深度解析教程
  • Unity3D 基于机器学习的 AI 行为树
  • QtDesigner中Label控件详解
  • uniappx 打包配置32位64位x86安装包