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

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设置到其中。 

 

相关文章:

  • nacos配置springboot配置信息,并且集成金仓数据库
  • 精选面试题
  • 【解决】Android Gradle Sync 报错 Could not read workspace metadata
  • 程序员鱼皮最新项目-----AI超级智能体教程(一)
  • 04-stm32的标准外设库
  • 【C语言】C语言动态内存管理
  • MS1205N激光测距用高精度时间测量(TDC)电路,单精度模式 60ps,双精度模式 30ps
  • LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下
  • 机器学习项目管理:团队协作与版本控制
  • aarcpy 列表函数的使用(1)
  • MCP‌和LangGraph‌结合2
  • 第十节:性能优化高频题-虚拟DOM与Diff算法优化
  • 探寻健康密码:养生从日常细节开始
  • ap无法上线问题定位(交换机发包没有剥掉pvid tag)
  • 机械手排列定位设备 PLC梯形图流程
  • 通信新思路:EtherCAT转Profinet网关在自主研发机器人中的技术实践与优化
  • 革新AI生产力,比象AI源码 - 下一代智能创作引擎
  • 【线段树 容斥原理】P3801 红色的幻想乡|普及+
  • 大学生如何学好人工智能
  • TI MSP430搭配 SD NAND(贴片式T卡):长续航心电监测的可靠保障
  • 最大规模的陈逸飞大展启幕:回望他,回望一个时代
  • 人大法工委:涉核领域还需要有一部统领性的基础法律
  • 人民论坛:是民生小事,也是融合大势
  • 秦洪看盘|避险情绪升温,短线或延续相对钝化状态
  • 2025年超长期特别国债24日首次发行
  • 一夜跌去200美元,黄金巨震冲上热搜!涨势已近尾声?