如果要根据数据库中的用户名、密码进行登录,点击这里:
操作步骤:
1、导入Spring Security坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2、创建Spring Security配置类
注意:配置多用户,在application.yml中不能有单用户配置
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@Configuration
public class SecurityConfig {
// 配置Security的加解密器
@Bean
public PasswordEncoder passwordEncoder(){
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
return passwordEncoder;
}
@Bean
// 配置Security多用户
public UserDetailsService userDetailsService(){
// 创建内存的用户详情管理器
InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();
// 创建用户
UserDetails tom = User.builder()
.username("tom")
.password(passwordEncoder().encode("root")) // 添加密码,并加密
.roles("admin","user") // 为用户添加角色信息
.build();
UserDetails jack = User.builder()
.username("root")
.password(passwordEncoder().encode("root")) // 添加密码,并加密
.roles("admin") // 为用户添加角色信息
.build();
// 将用户添加到用户详情管理器
inMemoryUserDetailsManager.createUser(tom);
inMemoryUserDetailsManager.createUser(jack);
return inMemoryUserDetailsManager;
}
}
3、以上就是Spring Security的多用户配置,最后进行调试运行即可