密码加密开发流程

1. 添加依赖

添加 Spring Boot 权限认证依赖

1
2
3
4
5
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>

2.添加过滤器

在 config 包下新建 SecurityConfig 类
将以下代码添加到类中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/**")
.permitAll()
.anyRequest()
.authenticated()
.and()
.csrf()
.disable();
}
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder(){
return new BCryptPasswordEncoder();
}
}

3.在注册接口中加上密码加密

修改 UserController 中的代码,首先注入加密实例

1
2
@Autowired
BCryptPasswordEncoder bCryptPasswordEncoder;

然后在注册接口下增加密码进行加密代码

1
2
String encodePassword = bCryptPasswordEncoder.encode(user.getUpassword());
user.setUpassword(encodePassword);

4.在登录时进行密码匹配

在登录接口下增加匹配代码

1
2
3
4
5
6
7
8
9
10
11
12
13
User userfromJdbc = userService.loginService(user.getUname());
//匹配代码
if(!bCryptPasswordEncoder.matches(user.getUpassword(),userfromJdbc.getUpassword())){
return Result.failure(ResultCodeEnum.UNAUTHORIZED,"用户名或者密码错误");
}
else{
String token =JWTUtils.getToken(userfromJdbc.getUaccount(),userfromJdbc.getUname());
Map<String,String> userMap = new HashMap<>();
userMap.put("userId",userfromJdbc.getUaccount());
userMap.put("userName",userfromJdbc.getUname());
userMap.put("token",token);
return Result.success(userMap);
}

密码加密开发流程
https://xmas-nnnut.github.io/2023/08/14/密码加密开发流程/
作者
Xmas-nnnut
发布于
2023年8月14日
许可协议