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); }
|