refactor: refactoring code; update encryption algorithm; add build ci;

This commit is contained in:
merlin
2025-11-02 00:03:16 +08:00
parent e4f032a7f0
commit 62ded00cb3
15 changed files with 330 additions and 53 deletions

View File

@@ -10,10 +10,10 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import xin.merlin.myblog_server.config.CustomUserDetails;
import xin.merlin.myblog_server.config.LoginDetails;
import xin.merlin.myblog_server.entity.User;
import xin.merlin.myblog_server.service.CacheService;
import xin.merlin.myblog_server.service.LoginService;
import xin.merlin.myblog_server.service.impl.UserServiceImpl;
import xin.merlin.myblog_server.utils.JwtUtil;
import xin.merlin.myblog_server.utils.RequestBack;
@@ -25,7 +25,6 @@ import java.util.Map;
@RestController
@RequiredArgsConstructor
public class LoginController {
@Autowired
private LoginDetails loginDetails;
@@ -38,8 +37,9 @@ public class LoginController {
@Autowired
private JwtUtil jwtUtil;
@Autowired
private HttpServletRequest request;
private final LoginService loginService;
private final HttpServletRequest request;
@Autowired
private CacheService cacheService;
@@ -48,27 +48,34 @@ public class LoginController {
@PostMapping("/login")
public RequestBack login(@RequestBody User user) {
try {
String ip = request.getRemoteAddr();
user.setIp(ip);
CustomUserDetails userDetails = loginDetails
.loadUserByUsername(user.getAccount());
user.setPassword(sha256Util
.encryptPassword(user.getPassword()));
if (userDetails == null) {
return RequestBack.success(ResultCode.USER_NOT_FOUND);
}
//System.out.println(account.getU_password());
// 验证密码
if(!user.getPassword().equals(userDetails.getPassword()))
return RequestBack.success(ResultCode.USER_PASSWORD_ERROR,null);
//System.out.println(userDetails.getU_id());
// 生成token
String token = jwtUtil.generateToken(user.getAccount(),userDetails.getU_id());
return RequestBack.success(ResultCode.SUCCESS, Map.of("token",token,"token_type","Bearer","role","User"));
// CustomUserDetails userDetails = loginDetails
// .loadUserByUsername(user.getAccount());
// user.setPassword(sha256Util
// .encryptPassword(user.getPassword()));
//
// if (userDetails == null) {
// return RequestBack.success(ResultCode.USER_NOT_FOUND);
// }
// //System.out.println(account.getU_password());
// // 验证密码
// if(!user.getPassword().equals(userDetails.getPassword()))
// return RequestBack.success(ResultCode.USER_PASSWORD_ERROR,null);
//
// //System.out.println(userDetails.getU_id());
// // 生成token
// String token = jwtUtil.generateToken(user.getAccount(),userDetails.getU_id());
//
// QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("account", user.getAccount());
// User userinfo = userServiceImpl.getOne(queryWrapper);
// userinfo.setIp(request.getRemoteAddr());
// userServiceImpl.updateById(userinfo);
// userinfo.setPassword(null);
//
// return RequestBack.success(ResultCode.SUCCESS, Map.of("token",token,"token_type","Bearer","role",user.getAccount().equals("admin")?"admin":"User","userInfo",userinfo));
Map<String, Object> result = loginService.login(user, request.getRemoteAddr());
if(result == null) return RequestBack.success(ResultCode.USER_PASSWORD_ERROR);
return RequestBack.success(ResultCode.SUCCESS,result);
} catch (UsernameNotFoundException e) {
System.out.println(e.getMessage());
return RequestBack.fail(ResultCode.SERVER_ERROR);
@@ -80,19 +87,26 @@ public class LoginController {
public RequestBack register(@RequestBody User user, @RequestParam String c_id) {
if(c_id == null || cacheService.getWaitingList().getIfPresent(c_id)==null) return RequestBack.fail(ResultCode.USER_VERIFICATION_ERROR);
try {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("account", user.getAccount());
if(userServiceImpl.exists(queryWrapper)) return RequestBack.success(ResultCode.USER_EXIST,null);
// 注册信息初始化
// QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("account", user.getAccount());
// if(userServiceImpl.exists(queryWrapper)) return RequestBack.success(ResultCode.USER_EXIST,null);
//
// // 注册信息初始化
// user.setIp(request.getRemoteAddr());
// user.setPassword(sha256Util.encryptPassword(user.getPassword()));
//
// // 注册
// userServiceImpl.save(user);
// cacheService.getWaitingList().invalidate(c_id);
//
// return RequestBack.success(ResultCode.SUCCESS,null);
user.setIp(request.getRemoteAddr());
user.setPassword(sha256Util.encryptPassword(user.getPassword()));
RequestBack result = loginService.register(user);
if(result.getCode() == 200) {
cacheService.getWaitingList().invalidate(c_id);
}
return result;
// 注册
userServiceImpl.save(user);
cacheService.getWaitingList().invalidate(c_id);
return RequestBack.success(ResultCode.SUCCESS,null);
} catch (Exception e) {
System.out.println(e.getMessage());
return RequestBack.fail(ResultCode.SERVER_ERROR);