update:用户管理-修改密码,密码加密传输
This commit is contained in:
+5
-2
@@ -458,13 +458,16 @@ public class SysUserController {
|
|||||||
// @RequestMapping(value = "/changePassword", method = RequestMethod.PUT)
|
// @RequestMapping(value = "/changePassword", method = RequestMethod.PUT)
|
||||||
@PostMapping("/changePassword")
|
@PostMapping("/changePassword")
|
||||||
@RequiresPermissions("user:password")
|
@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()));
|
SysUser u = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, sysUser.getUsername()));
|
||||||
if (u == null) {
|
if (u == null) {
|
||||||
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
|
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
|
||||||
}
|
}
|
||||||
sysUser.setId(u.getId());
|
sysUser.setId(u.getId());
|
||||||
return sysUserService.changePassword(sysUser);
|
return sysUserService.changePassword(sysUser, rsaPrivateKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -65,7 +65,7 @@ public interface ISysUserService extends IService<SysUser> {
|
|||||||
* @param sysUser
|
* @param sysUser
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Result<T> changePassword(SysUser sysUser);
|
public Result<T> changePassword(SysUser sysUser, String rsaPrivateKey);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除用户
|
* 删除用户
|
||||||
|
|||||||
+2
-2
@@ -116,10 +116,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
@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);
|
String salt = UUIDUtils.randomUUID(8);
|
||||||
sysUser.setSalt(salt);
|
sysUser.setSalt(salt);
|
||||||
String password = sysUser.getPassword();
|
|
||||||
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
|
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
|
||||||
sysUser.setPassword(passwordEncode);
|
sysUser.setPassword(passwordEncode);
|
||||||
this.userMapper.updateById(sysUser);
|
this.userMapper.updateById(sysUser);
|
||||||
|
|||||||
Reference in New Issue
Block a user