上一篇我們介紹了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();
