Spring Security06--认证流程,简单版

上一篇:Spring Security05--手机验证码登录_fengxianaa的博客-CSDN博客

10. 认证流程

梳理一下认证流程

  • 用户提交用户名、密码被 UsernamePasswordAuthenticationFilter 过滤器拿到,
    • 封装为 :UsernamePasswordAuthenticationToken(它实现了 Authentication 接口)
  • 然后将Authentication 提交给 证管理器(AuthenticationManager)进行认证
    • 就是这句代码:this.getAuthenticationManager().authenticate(authRequest);
  • authenticate 方法中调用 AuthenticationProvider 对象的 authenticate 方法进行认证
    • 手机登录调用的是我们自己的:PhoneAuthenticationProvider
    • 账号密码登录调用的是:DaoAuthenticationProvider
  • 认证过程:
    • 通过 UserDetailsService 查询用户对象
      • 手机登录调用的是我们自己的:LoginPhoneService
      • 账号密码登录调用的是:LoginUserService
    • 比较密码是否正确(手机登录比较的是验证码)
    • 成功后重新创建Authentication对象,把当前用户放进去
  • 认证结束后,把 Authentication 对象,放到 SecurityContext 中
    • 执行的是:SecurityContextHolder.getContext().setAuthentication();
  • 之后就可以通过SecurityContextHolder.getContext().getAuthentication(); 获取当前用户
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值