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对象

posted @ 2020-03-08 01:00  繁华乱世  阅读(3055)  评论(0编辑  收藏  举报