Security认证流程时序图
2022-02-10 14:15:03 0 举报
Security认证流程
作者其他创作
大纲/内容
5.获取用户信息UserDetails,首先从缓存中读取信息,如果缓存中没有的化,在UserDetailsService中加载,其最主要可以从我们自定义的UserDetailsService进行读取用户信息UserDetails;
④认证中所需的认证凭证获取:UserDetailsService
入门案例认证流程
InMemoryUserDetailsManager
1.提交用户名和密码
8. 密码正确,把UserDetails对象信息(用户的身份信息,以及相应的权限信息),设置到Authentication对象中
ProviderManager
①请求首先经过过滤器AbstractAuthenticationProcessingFilter以及UsernamePasswordAuthenticationFilter进行处理
接口
7. 使用PasswordEncoder.matches()方法进行认证UserDetails中密码和Authentication密码是否正确
AbstractUserDetailsAuthenticationProvider
UsernamePasswordAuthenticationFilter
5.1 根据用户名去查询对应的用户及权限信息,InMemoryUserDetailsManager是在内存中查找
10. 如果上一步Authentication对象 就是用 SecurityContextHolder.getContext().setAuthentication() 方法存储该对象,其他过滤器中会通过SecurityContextHolder 来获取当前用户信息
5.2 把对应的用户及权限信息封装到UserDetails对象
AbstractAuthenticationProcessingFilter
UserDetailsService
4.主要的三个主要过程:第一步:AuthenticationProvide.authenticate()进行认证第二步:认证成功后,从authentication中删除凭据和其他机密数据,否则抛出异常或者认证失败第三步:发布认证成功事件,并将Authentication对象保存到security context中
实现类
DaoAuthenticationProvider
AuthenticationManager
③认证过程详细处理:AuthenticationProvider、AbstractUserDetailsAuthenticationProvider以及DaoAuthenticationProvider
9.返回Authentication对象
②请求经过过滤器处理之后,在AuthenticationManager以及ProviderManager认证
3.调用authenticate()方法进行认证
6.返回UserDetails对象
收藏
收藏
0 条评论
下一页