美文网首页Spring Security Oauth2.0认证授权
14.Spring Security应用详解-工作原理-认证流程

14.Spring Security应用详解-工作原理-认证流程

作者: LANSHENGYANG | 来源:发表于2020-03-23 11:18 被阅读0次

认证流程

image

让我们仔细分析认证过程:

  • 1.用户提交用户名,密码被SecurityFilterChain中的UsernamePasswordAuthenticationFilter过滤器获取到,封装为请求Authentication,通常情况下是UsernamePasswordAuthenticationToken这个实现类。
  • 2.然后过滤器将Authentication提交至认证管理器(AuthenticationManager)进行认证
  • 3.认证成功后,AuthenticationManager身份管理器返回一个被填充满了信息的(包括上面提交到的权限信息,身份信息,细节信息,但密码通常会被移除)Authentication实例。
  • 4.SecurityContextHolder安全上下文容器将第3步填充了信息的Authentication。通过SecurityContextHolder.getContext().setAuthentication(...)方法,设置到其中。

可以看出AuthenticationManager(认证管理器)是认证相关的核心接口,也是发起认证的出发点,它的实现类为ProviderManager。而Spring Security支持多种认证方式,因此ProviderManager维护着一个List<AuthenticationProvider>列表,存放多种认证方式,最终实际的认证工作是由AuthenticationProvider完成的。咱们知道web表单的对应的AuthenticationProvider实现类为DaoAuthenticationProvider将UserDetails填充至Authentication。

相关文章

网友评论

    本文标题:14.Spring Security应用详解-工作原理-认证流程

    本文链接:https://www.haomeiwen.com/subject/bdniyhtx.html