update:用户管理-修改密码,密码加密传输

This commit is contained in:
sunzheng
2024-08-16 15:03:14 +08:00
parent 05bf4417de
commit 55903e499e
3 changed files with 8 additions and 5 deletions
@@ -458,13 +458,16 @@ public class SysUserController {
// @RequestMapping(value = "/changePassword", method = RequestMethod.PUT)
@PostMapping("/changePassword")
@RequiresPermissions("user:password")
public Result<T> changePassword(@RequestBody SysUser sysUser) {
public Result<T> 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<SysUser>().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);
}
/**
@@ -65,7 +65,7 @@ public interface ISysUserService extends IService<SysUser> {
* @param sysUser
* @return
*/
public Result<T> changePassword(SysUser sysUser);
public Result<T> changePassword(SysUser sysUser, String rsaPrivateKey);
/**
* 删除用户
@@ -116,10 +116,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override
@CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
public Result<T> changePassword(SysUser sysUser) {
public Result<T> 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);