AuthenticationManager的认证流程
上一篇讲了UserDetails(规范用户信息)和UserDetailService(获取用户信息)
这篇 来讲获取用户信息后该如何认证,它的认证流程是什么?
Spring Security 是一个安全管理框架,它的安全是基于一条长长的过滤器链,当用户发出一个请求时,首先会进入Security 的过滤器链中(之后我会更新一篇关于Security 过滤器链的详细文章,这篇就只就AuthenticationManager进行解析),当进入UsernamePasswordAuthenticationFitel这个过滤器的时候,会判断是否是登录路径,如果是,配置AuthenticationManagerBuilder会让Security自动构建一个认证管理器
AuthenticationManager。以下是认证的配置:
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired BookService bookService; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(bookService).passwordEncoder(new BCryptPasswordEncoder()); }
UserDetailService会根据用户传过来的用户名查找一个用户,passwordEncoder用于密码的加密和比对,如果认证成功,则会返回一个Authentication对象
本博客内容参考资料均来自于网络,如有侵权,请邮箱联系,我去处理,谢谢合作。