Spring Scurity是spring生态下用于认证和授权的框架,具有高度的灵活性和可扩展行,本节主要对Spring Security的认证过程中进行概括性的介绍,主要介绍在该过程中,会涉及到哪些组件以及每个组件所承担的职责,希望大家可以对Spring Security的认证过程能够有一个清晰的认识。
如上图所示,该图展示了在Spring Security的身份验证过程中涉及到的主要组件以及他们之间的关系。这个架构代表了使用Spring Security实现身份验证的骨架主干。我们在后续给大家讲解Spring Security的身份验证过程中,会经常使用到,需要大家对其有个基本的认识。
如上图所示
- 用户对系统发出的请求,会被Spring Security的身份验证过滤器拦截,拦截之后会进行Spring Security的内部处理流程,而该拦截器会将认证请求委托给身份验证管理器,即AuthenticationManager.
- 使用验证管理器会使用身份验证提供程序,即AuthenticationProvider进行身份的逻辑校验,而身份验证提供程序会使用另外两个组件,即用户详情服务和密码编码器进行身份的具体校验过程
- 用户详情服务,即UserDetailsService,实现了用户管理职能,身份验证提供程序将在身份验证逻辑中使用它来查找用户是否存在
- 密码编码器即PasswordEncoder实现了密码的管理,身份验证提供程序将在身份验证逻辑中使用它,以便确认用户输入的密码是否正确
- 安全上下文即SecurityContext在身份验证结束后,保留身份验证的数据,如用户名、所具有的角色和权限等,供程序后续调用
以上便是基于Spring Security进行身份认证过程需要经历的步骤,希望大家能有所了解,后续将针对每个组件给大家做更加详细的介绍。