写在前面
承接上文,上文讲到配置体系,今天主要讲解认证体系。感兴趣的小伙伴可以点击头像查看我专栏和历史文章。
Spring Security 用户认证体系
回到用户认证场景。因为 Spring Security 默认提供的用户名是固定的,而密码会随着每次应用程序的启动而变化,所以很不灵活。在 Spring Boot 中。
我们可以通过在 application.yml 配置文件中添加如下所示的配置项来改变这种默认行为:
spring:
security:
user:
name: spring
password: spring_password
我们可以使用上述用户名和密码完成登录。基于配置文件的用户信息存储方案简单直接,但显然也缺乏灵活性,因为我们无法在系统运行时动态加载对应的用户名和密码。
因此,在现实中,我们主要还是通过使用 WebSecurityConfigurerAdapter 配置类来改变默认的配置行为。
前面我们说过,知道可以通过 WebSecurityConfigurerAdapter 类的 configure(HttpSecurity http) 方法来完成认证。
认证过程涉及 Spring Security 中用户信息的交互,我们可以通过继承 WebSecurityConfigurerAdapter 类并且覆写其中的configure(AuthenticationManagerBuilder auth) 的方法来完成对用户信息的配置工作。请注意这是两个不同的 configure() 方法。
两种方案
针对 WebSecurityConfigurer 配置类,我们首先需要明确配置的内容。实