Spring Security登录的流程

Spring Security登录的流程

Spring Security登录的流程

1、UsernamePasswordAuthenticationFilter这过滤器开始

attemptAuthentication方法

Spring Security登录的流程

请求的request中的参数

Spring Security登录的流程

setDetails(request, authRequest); 是在设置一些seesion的信息

Spring Security登录的流程

然后进入这个 return this.getAuthenticationManager().authenticate(authRequest);

2、ProviderManager进入这个方法进程验证

authenticate方法

Spring Security登录的流程

第一次进入因为paoviders的参数不符合,从新再次进入

Spring Security登录的流程

Spring Security登录的流程

第二进入的时的参数信息

Spring Security登录的流程

result = provider.authenticate(authentication);进入

3、AbstractUserDetailsAuthenticationProvider对象

authenticate方法

Spring Security登录的流程

通过用户名和封装好的对象去查找user(UserDetails)这个对象
user = retrieveUser(username, (UsernamePasswordAuthenticationToken) authentication);

4、DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider

retrieveUser方法

Spring Security登录的流程
UserDetails loadedUser = this.getUserDetailsService().loadUserByUsername(username);

通过自己写的service层并且实现了 UserDetailsService接口的方法中去数据库查询该用户

Spring Security登录的流程

这里过后就获取到了这个查询的user的信息

Spring Security登录的流程

然后进入

additionalAuthenticationChecks(user, (UsernamePasswordAuthenticationToken) authentication);

这个方法进行密码的校验检查

additionalAuthenticationChecks方法

Spring Security登录的流程

Spring Security登录的流程

ProviderManager 一直到这个里面的 authenticate 方法结束,这中间把密码都移除了,估计未来保证安全

最后的这个返回的 result (第二个进入的返回)

Spring Security登录的流程

然后接着就是第一次进入的返回了

5、AbstractAuthenticationProcessingFilter

Spring Security登录的流程

后面就该执行以下登录成功后的处理了,比如权限认证

还有其他过滤器的执行了

Original: https://www.cnblogs.com/shuisanya/p/16603115.html
Author: 水三丫
Title: Spring Security登录的流程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581460/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球