【穿针引线】基于ElAdmin项目论Spring Security的工作原理,源码分析
- 序
- 一、核心类
- 1.1 SecurityContext 安全上下文
- 1.2 网安适配器WebSecurityConfigurerAdapter
- 1.3 认证器 Authentication
- 1.4 信息认证提供者
- 1.4.1 抽象用户信息认证提供者 AbstractUserDetailsAuthenticationProvider
- 1.4.2 数据库认证提供者DaoAuthenticationProvider
- 1.4.3 用户信息服务 UserDetailsService
- 1.5 用户相关
- 1.5.1 用户信息 UserDetails
- 1.5.2 用户信息检查器 UserDetailsChecker
- 1.6 密码编码器
- 1.6.1 拥有的加密类种类
- 1.6.2 Hash加密编码器BCryptPasswordEncoder
- 1.6.3 裸加密编码器NoOpPasswordEncoder
- 二、传输和存储的加解密方式
- 2.1 传输加解密
- 2.2 存储加解密
- 三、登录流程
- 四、前后端OAuth2单点登录
序
在做单点登录功能时,在这篇文博客中分析过CAS方式登录源码,关注的是认证和授权函数,其实思想都是大同小异。在这篇博客中,基于Spring Security框架的核心类和思想进行认证和授权的源码分析,做到说透讲透。
一、核心类
1.1 SecurityContext 安全上下文
1.2 网安适配器WebSecurityConfigurerAdapter
1.3 认证器 Authentication
1.4 信息认证提供者
1.4.1 抽象用户信息认证提供者 AbstractUserDetailsAuthenticationProvider
1.4.2 数据库认证提供者DaoAuthenticationProvider
retrieveUser
额外身份认证
additionalAuthenticationChecks
1.4.3 用户信息服务 UserDetailsService
loadUserByUsername
1.5 用户相关
1.5.1 用户信息 UserDetails
1.5.2 用户信息检查器 UserDetailsChecker
DefaultPreAuthenticationChecks