两张图疏通Spring Security认证流程

目录

前言 

图解

第一张图——原理流程图

第二张图——编码流程图(自顶向下)

剖析 

一、UsernamePasswordAuthenticationFilter

二、UserDetailsService

三、密码校验

四、返回authentication 对象

五、自定义JWT 拦截器

总结

先编写SecurityConfig 类

再编写LoginUser类和UserDetailsService

 编写认证登录接口

 最后再编写JWT 过滤器


 

前言 

我们都知道实现一套Spring Security 的认证流程, 需要设计很多和类来回切换,Usertails , UsertailsService , AuthenticationManager等等, 这些类名又非常的长, 所以导致我们在写的时候,思绪混乱,不知道下一步应该写什么 ,所以今天我们就通过两张图来搞明白这个认证编码的流程

Tip:最好自己是已经跟着文档或者视频做过一次Spring Security认证流程

可以看看我的上一篇博客

更加优雅的认证授权——Spring Security_Hzq958的博客-CSDN博客

图解

第一张图——原理流程图

 第二张图——编码流程图(自顶向下)

剖析 

一、UsernamePasswordAuthenticationFilter

我们先仔细看看原理图

这里是把我们的用户名密码传进来,用UsernamePasswordAuthenticationToken接收,

紧接着封装为authentication 对象

对应我们编码流程图 的这一块

 二、UserDetailsService

多层的过滤器,嵌套调用方法,来到UserDetailsService

 把前面的用户名密码也传到这里了

来到UserDetailsService,第一个方法就是loadUserByUsername, 这个方法就需要我们自己去重写,一般就是到数据库的用户表去查询用户(这里并没有验证密码是否正确), 然后匹配到用户的话就会来查询权限,返回一个UserDetails 对象;否则就抛出异常。

这里对应到我们的编码流程就是这一块

 因为这里涉及到要返回一个UserDetails 类型的对象, 所以我们就需要封装这么一个对象

对应到我们的编码流程是这块

 三、密码校验

返回UserDetails 对象之后, 就来到了我们的密码校验

默认的密码检验规则一般都不是我们想要的,所以这里我们要自己选中密码校验规则, 

也就是我们编码流程的注入PasswordEncode Bean对象 到Java 工厂 ,return  这里就是选择密码校验规则

四、返回authentication 对象

 

对应我们编码流程图的这部分

 五、自定义JWT 拦截器

总结

所以我们的编码流程自顶向下的方式是非常合理, 避免了反复频繁的切换类

先编写SecurityConfig 类

 这里的JWT 过滤器可以先不写

再编写LoginUser类和UserDetailsService

 编写认证登录接口

 最后再编写JWT 过滤器

 然后再回头把Config文件 的JWT 过滤拦截放在最前面

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Alibaba 租户管理系统源码是一款基于 Spring Cloud 和 Alibaba 相关技术的开源项目,用于企业多租户系统的开发。该系统可以满足企业中不同业务线、不同部门或不同用户对同一应用系统进行不同操作的需求,从而实现企业 IT 系统资源的合理管理和应用。 该项目实现了租户切换、租户隔离和租户数据的分离等功能。其架构采用了 Spring Cloud Gateway、Nacos、Sentinel、MyBatis 和 MySQL 等技术,具有高度的可扩展性和可定制化程度。其中,Spring Cloud Gateway 作为网关层负责统一的入口流量控制和转发,Nacos 作为注册中心管理应用服务的注册和发现,Sentinel 则作为流量控制和熔断降级的关键技术。MyBatis 和 MySQL 则完成租户数据与应用数据之间的隔离和查询。 租户管理系统源码在设计中尽量减少了对业务代码的侵入,业务相关的租户信息由开发人员自行维护。在实现过程中,还充分考虑了系统安全和稳定性,并对系统的微服务架构进行了优化,使得不同的模块可以单独部署和维护,降低了系统疏通性问题的发生。此外,该项目还提供了完整的文档和演示示例,方便开发人员学习和使用。 总之,Spring Cloud Alibaba 租户管理系统源码是一款优秀的企业级多租户管理系统,其架构合理、扩展性好、性能稳定、易于定制和开发,对于企业 IT 系统资源的合理管理和应用具有重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值