diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 955b4c9b..25f97ade 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -458,13 +458,16 @@ public class SysUserController { // @RequestMapping(value = "/changePassword", method = RequestMethod.PUT) @PostMapping("/changePassword") @RequiresPermissions("user:password") - public Result changePassword(@RequestBody SysUser sysUser) { + public Result changePassword(@RequestBody JSONObject jsonObject) { + String rsaPublicKey = jsonObject.getString(RSA_PUBLIC_KEY); + String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey)); + SysUser sysUser = JSON.parseObject(jsonObject.toJSONString(), SysUser.class); SysUser u = this.sysUserService.getOne(new LambdaQueryWrapper().eq(SysUser::getUsername, sysUser.getUsername())); if (u == null) { return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } sysUser.setId(u.getId()); - return sysUserService.changePassword(sysUser); + return sysUserService.changePassword(sysUser, rsaPrivateKey); } /** diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index e4f87510..4f591b4a 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -65,7 +65,7 @@ public interface ISysUserService extends IService { * @param sysUser * @return */ - public Result changePassword(SysUser sysUser); + public Result changePassword(SysUser sysUser, String rsaPrivateKey); /** * 删除用户 diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index f8c835c5..898330ea 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -116,10 +116,10 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true) - public Result changePassword(SysUser sysUser) { + public Result changePassword(SysUser sysUser, String rsaPrivateKey) { + String password = CommonUtils.decryptBtRsaPriKey(sysUser.getPassword(), rsaPrivateKey); // 利用私钥解密 String salt = UUIDUtils.randomUUID(8); sysUser.setSalt(salt); - String password = sysUser.getPassword(); String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt); sysUser.setPassword(passwordEncode); this.userMapper.updateById(sysUser);