springboot系列22: SpringSecurity多用户验证
上一篇我们介绍了SpringSecurity的概念和手把手搭建跑了起来,同时介绍了如何开启验证和修改配置它的初始默认登录用户名和密码。若有小伙伴们还不知道,请查阅公众号上一篇文章的内容^^。
今天我们解决下如何配置多用户的验证登录,上一篇我们只是通过配置文件只能修改一个默认的帐号,那若想要添加多个用户如何解决呢?只要继承WebSecurityConfigurerAdapter 实现configure方法。
/** * @version 1.0 * @description: 配置多用户验证 * @date 2020-09-17 23:33 */ @Configuration @EnableWebSecurity //开启security public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); //密码加密 } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { /* * 这里配置了两个用户 admin和user */ auth.inMemoryAuthentication() .withUser("admin") .password(passwordEncoder().encode("123456")) .roles(); auth.inMemoryAuthentication() .withUser("user") .password(passwordEncoder().encode("123456")) .roles(); } }
看了代码是不是很简单,我相信小伙伴们都已经学会了^^。
当然我们还可以用配置文件方式来配置,看我下面一顿神操作。
# application.properties security.user3.name = admin1 security.user3.password = 1234567
定义bean接收配置的文件
/** * @version 1.0 * @description: 获取配置文件数据 * @date 2020-09-17 23:45 */ @Component @ConfigurationProperties(prefix = "security.user3") public class SecurityUser { private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
在 WebSecurityConfig 添加新用户信息:
auth.inMemoryAuthentication() .withUser(securityUser.getName()) .password(passwordEncoder().encode(securityUser.getPassword())) .roles();