SpringSecurity身份验证之AuthenticationProvider接口

理解AuthenticationProvider

  • 1、简介
    • 1.1 在身份验证期间表示请求
    • 1.2 实现自定义身份验证逻辑
    • 1.3 应用自定义身份验证逻辑
      • 1.3.1 实现步骤
      • 1.3.2 重写AuthenticationProvider的supports()方法
      • 1.3.3 实现身份验证逻辑
      • 1.3.4 在配置类中注册AuthenticationProvider

1、简介

  在企业级应用程序中,你可能会发现自己处于这样一种状况:基于用户名和密码的身份验证的默认实现并不适用。另外,当涉及身份验证时,应用程序可能需要实现几个场景。例如,我们可能希望用户能够通过使用在SMS消息中接收到的或由特定应用程序显示的验证码来证明自己的身份。或者,也可能需要实现某些身份验证场景,其中用户必须提供存储在文件中的某种密钥。我们甚至可能需要某些使用用户指纹的表示来实现身份验证逻辑。框架的目的是要足够灵活,以便允许我们实现这些所需场景中的任何一个。

  框架通常会提供一组最常用的实现,但它必然不能涵盖所有可能的选项。就SpringSecurity而言,可以使用AuthenticationProvider接口来定义任何自定义的身份验证逻辑。

1.1 在身份验证期间表示请求

  身份验证(Authentication)也是处理过程中涉及的其中一个必要接口的名称。Authentication接口表示身份验证请求事件,并且会保存请求访问应用程序的实体的详细信息。可以在身份验证过程期间和之后使用与身份验证请求事件相关的信息。请求访问应用程序的用户被称为主体(principal)。

如果你曾经在任何应用程序中是通过Java Security API,就会知道,在Java Security API中,名为Principal的接口表示相同的概念。Spring S

你可能感兴趣的:(SpringSecurity,spring,boot,spring,spring,security)