1、工作原理:
AuthenticationManager:负责身份认证
AccessDecisionManager:负责权限认证
2、认证流程
- UsernamePasswordAuthenticationFilter实现了AbstractAuthenticationProcessingFilter;打断点在AbstractAuthenticationProcessingFilter.doFilter()的方法,会去调用此方法;
- 再断点在DaoAuthenticationProvider的retieverUser()方法;会去调用此方法;
- 然后会去调用我们重写的UserDetailService.loadUserByUsername(),从数据库获取用户信息以及权限信息,返回给DaoAuthenticationProvider;
- 接下来会调用AbstractUserDetailAuthenticationProvider.authenticate()方法,对密码进行校验;该方法会进入DaoAuthenticationProvider.additionalAuthenticationChecks()进行密码校验;
本人参考视频链接如下:
看原理的话,看P14,P15,P18这三个视频