diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java index 4817b5b..0dce5c3 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java @@ -106,7 +106,7 @@ public class UserController { @PutMapping("/changePassword") @UserOperation(value="修改了用户密码", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult changePassword(@RequestBody ChangePasswordRequest request) { - return userService.changePassword(request.getUserId(), request.getOldPassword(), request.getNewPassword()); + return userService.changePassword(request.getUserId(), request.getNewPassword()); } @RequiredRole(AdminTypeEnum.SECURITY) @@ -126,4 +126,9 @@ public class UserController { return ElectromagneticResultUtil.success(adminType); } } + @PostMapping("/validateOldPassword") + @UserOperation(value = "校验了原始密码", modelName = UserOperationModuleEnum.USER) + public ElectromagneticResult validateOldPassword(@RequestBody ValidateOldPasswordRequest request) { + return userService.validateOldPassword(request.getUserId(), request.getOldPassword()); + } } \ No newline at end of file diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java index 44cd774..922c96c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java @@ -2,7 +2,7 @@ package com.electromagnetic.industry.software.manage.pojo.req; public class ChangePasswordRequest { private String userId; - private String oldPassword; + private String newPassword; // Getters and Setters @@ -14,13 +14,6 @@ public class ChangePasswordRequest { this.userId = userId; } - public String getOldPassword() { - return oldPassword; - } - - public void setOldPassword(String oldPassword) { - this.oldPassword = oldPassword; - } public String getNewPassword() { return newPassword; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ValidateOldPasswordRequest.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ValidateOldPasswordRequest.java new file mode 100644 index 0000000..66f2d21 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ValidateOldPasswordRequest.java @@ -0,0 +1,23 @@ +package com.electromagnetic.industry.software.manage.pojo.req; + +public class ValidateOldPasswordRequest { + private String userId; + private String oldPassword; + + // Getters and Setters + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getOldPassword() { + return oldPassword; + } + + public void setOldPassword(String oldPassword) { + this.oldPassword = oldPassword; + } +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java index d599810..86f6af8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java @@ -95,9 +95,17 @@ public interface UserService { /** * * @param userId 用户ID - * @param oldPassword * @param newPassword * @return */ - ElectromagneticResult changePassword(String userId, String oldPassword, String newPassword); + ElectromagneticResult changePassword(String userId, String newPassword); + + /** + * 校验原始密码是否正确 + * + * @param userId 用户ID + * @param oldInputPassword 输入的原始密码 + * @return 如果密码正确返回成功结果,否则返回失败结果 + */ + ElectromagneticResult validateOldPassword(String userId, String oldInputPassword); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 781103b..3012861 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -289,22 +289,18 @@ public class UserServiceImpl implements UserService { * 修改用户密码 * * @param userId 用户ID - * @param oldPassword 旧密码 * @param newPassword 新密码 * @return 修改结果 */ @Override - public ElectromagneticResult changePassword(String userId, String oldPassword, String newPassword) { + public ElectromagneticResult changePassword(String userId, String newPassword) { User user = userMapper.getSingleUser(userId); if (user == null) { return ElectromagneticResultUtil.fail("53106", "USER_NOT_FOUND"); } - if (!matchPassword(user, oldPassword)) { - return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT"); - } - - user.setUserPwd(SignUtils.MD5(newPassword + user.getSalt())); + String decodeNewPwd = AESUtils.decrypt(newPassword, UserConstants.SECRET_KEY); + user.setUserPwd(SignUtils.MD5(decodeNewPwd + user.getSalt())); user.setModifier(UserThreadLocal.getUserId()); user.setModifierName(UserThreadLocal.getUsername()); return ElectromagneticResultUtil.success(userMapper.modify(user) > 0); @@ -353,4 +349,23 @@ public class UserServiceImpl implements UserService { } } } + + // 在 UserServiceImpl.java 类中实现以下方法 + @Override + public ElectromagneticResult validateOldPassword(String userId, String oldInputPassword) { + User user = userMapper.getSingleUser(userId); + if (user == null) { + return ElectromagneticResultUtil.fail("53106", "USER_NOT_FOUND"); + } + String decodeOldPwd = AESUtils.decrypt(oldInputPassword, UserConstants.SECRET_KEY); + + +// if (!user.getUserPwd().equals(SignUtils.MD5(decodeOldPwd + user.getSalt()))) { +// return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT"); +// } + if (!matchPassword(user,decodeOldPwd)) { + return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT"); + } + return ElectromagneticResultUtil.success(true); + } }