修改用户密码.

This commit is contained in:
lijiahang
2023-10-31 12:39:12 +08:00
parent 46fd799021
commit 6c9aabd4fd
11 changed files with 255 additions and 40 deletions

View File

@@ -4,11 +4,10 @@ import com.orion.lang.define.wrapper.HttpWrapper;
import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog;
import com.orion.ops.framework.log.core.annotation.IgnoreLog;
import com.orion.ops.framework.log.core.enums.IgnoreLogMode;
import com.orion.ops.framework.security.core.utils.SecurityUtils;
import com.orion.ops.framework.web.core.annotation.RestWrapper;
import com.orion.ops.module.infra.define.operator.AuthenticationOperatorType;
import com.orion.ops.module.infra.entity.request.user.UserLoginRequest;
import com.orion.ops.module.infra.entity.request.user.UserResetPasswordRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.UserLoginVO;
import com.orion.ops.module.infra.service.AuthenticationService;
import com.orion.ops.module.infra.service.SystemUserService;
@@ -66,10 +65,8 @@ public class AuthenticationController {
@OperatorLog(AuthenticationOperatorType.UPDATE_PASSWORD)
@Operation(summary = "修改密码")
@PutMapping("/update-password")
public HttpWrapper<?> updatePassword(@Validated @RequestBody UserResetPasswordRequest request) {
// 当前用户id
request.setId(SecurityUtils.getLoginUserId());
systemUserService.resetPassword(request);
public HttpWrapper<?> updatePassword(@Validated @RequestBody UserUpdatePasswordRequest request) {
authenticationService.updatePassword(request);
return HttpWrapper.ok();
}

View File

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* 重置密码请求
@@ -16,6 +17,7 @@ import javax.validation.constraints.NotEmpty;
@Schema(name = "UserResetPasswordRequest", description = "重置密码请求")
public class UserResetPasswordRequest {
@NotNull
@Schema(description = "id")
private Long id;

View File

@@ -0,0 +1,27 @@
package com.orion.ops.module.infra.entity.request.user;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 修改密码请求
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/7/17 12:19
*/
@Data
@Schema(name = "UserUpdatePasswordRequest", description = "修改密码请求")
public class UserUpdatePasswordRequest {
@NotEmpty
@Schema(description = "原密码")
private String beforePassword;
@NotEmpty
@Schema(description = "新密码")
private String password;
}

View File

@@ -3,6 +3,7 @@ package com.orion.ops.module.infra.service;
import com.orion.ops.framework.common.security.LoginUser;
import com.orion.ops.module.infra.entity.dto.LoginTokenDTO;
import com.orion.ops.module.infra.entity.request.user.UserLoginRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.UserLoginVO;
import javax.servlet.http.HttpServletRequest;
@@ -42,6 +43,13 @@ public interface AuthenticationService {
*/
void logout(HttpServletRequest servletRequest);
/**
* 修改密码
*
* @param request request
*/
void updatePassword(UserUpdatePasswordRequest request);
/**
* 获取登陆用户信息
*

View File

@@ -73,7 +73,7 @@ public interface SystemUserService {
/**
* 删除 id 删除用户拓展信息
*
* @param id
* @param id id
*/
void deleteSystemUserRel(Long id);

View File

@@ -24,11 +24,14 @@ import com.orion.ops.module.infra.entity.domain.SystemRoleDO;
import com.orion.ops.module.infra.entity.domain.SystemUserDO;
import com.orion.ops.module.infra.entity.dto.LoginTokenDTO;
import com.orion.ops.module.infra.entity.request.user.UserLoginRequest;
import com.orion.ops.module.infra.entity.request.user.UserResetPasswordRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.UserLoginVO;
import com.orion.ops.module.infra.enums.LoginTokenStatusEnum;
import com.orion.ops.module.infra.enums.UserStatusEnum;
import com.orion.ops.module.infra.service.AuthenticationService;
import com.orion.ops.module.infra.service.PermissionService;
import com.orion.ops.module.infra.service.SystemUserService;
import com.orion.web.servlet.web.Servlets;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -57,6 +60,9 @@ public class AuthenticationServiceImpl implements AuthenticationService {
@Resource
private SystemUserRoleDAO systemUserRoleDAO;
@Resource
private SystemUserService systemUserService;
@Resource
private PermissionService permissionService;
@@ -120,6 +126,22 @@ public class AuthenticationServiceImpl implements AuthenticationService {
redisTemplate.delete(Lists.of(loginKey, refreshKey));
}
@Override
public void updatePassword(UserUpdatePasswordRequest request) {
Long userId = SecurityUtils.getLoginUserId();
// 查询用户信息
SystemUserDO record = systemUserDAO.selectById(userId);
Valid.notNull(record, ErrorMessage.USER_ABSENT);
// 对比原始密码
String beforePassword = Signatures.md5(request.getBeforePassword());
Valid.eq(beforePassword, record.getPassword(), ErrorMessage.BEFORE_PASSWORD_ERROR);
// 重置密码
UserResetPasswordRequest reset = new UserResetPasswordRequest();
reset.setId(userId);
reset.setPassword(request.getPassword());
systemUserService.resetPassword(reset);
}
@Override
public LoginUser getLoginUser(Long id) {
String userInfoKey = UserCacheKeyDefine.USER_INFO.format(id);