SpringSecurity的基本登录流程

SpringSecurity的基本登录流程

  • 1.几个重要的成员
    • 1.1 Authentication
    • 1.2 AuthenticationProvider
    • 1.3 AuthenticationManager
    • 1.4 ProviderManager
  • 2.基本流程(基于用户名密码登录)

1.几个重要的成员

1.1 Authentication

1)Authentication对象主要保存用户的一些基本信息,用户名,密码,权限等
SpringSecurity的基本登录流程_第1张图片
2)其下还有多个实现类,UsernamePasswordAuthenticationToken用得最多,每个不同的token登录都会有对应一个AuthenticationProvider,比如UsernamePasswordAuthenticationToken它就有一个AbstractUserDetailsAuthenticationProvider
SpringSecurity的基本登录流程_第2张图片

1.2 AuthenticationProvider

1)AuthenticationProvider接口,认证提供者,提供authenticate和support方法,有多个实现类
SpringSecurity的基本登录流程_第3张图片

1.3 AuthenticationManager

1)AuthenticationManager接口,认证管理者,用于管理AuthenticationProvider,定义了一个authenticate方法,用于做认证
SpringSecurity的基本登录流程_第4张图片

1.4 ProviderManager

1)ProviderManager是AuthenticationManager的实现类,用于管理AuthenticationProvider,定义了一个list来管理
SpringSecurity的基本登录流程_第5张图片

2.基本流程(基于用户名密码登录)

2.1 主要成员

SpringSecurity的基本登录流程_第6张图片
2.1 流程
1)请求来到UsernamePasswordAuthenticationFilter,获取前端传来的用户名和密码,并且调用authenticate方法
SpringSecurity的基本登录流程_第7张图片
2)进入到ProviderManager的authenticate方法,遍历providers
SpringSecurity的基本登录流程_第8张图片
SpringSecurity的基本登录流程_第9张图片

3)进入到AbstractUserDetailsAuthenticationProvider,执行authenticate方法
SpringSecurity的基本登录流程_第10张图片
4)校验用户和密码
SpringSecurity的基本登录流程_第11张图片
SpringSecurity的基本登录流程_第12张图片
SpringSecurity的基本登录流程_第13张图片
5)将用户相关信息存储到authentication对象,并且返回
SpringSecurity的基本登录流程_第14张图片
在这里插入图片描述

你可能感兴趣的:(spring,security,spring,boot,spring)