فهرست منبع

个人修改密码后端逻辑重新修改,并对前端文本框自动赋值做修改

xusl 1 سال پیش
والد
کامیت
68ebd9145d

+ 7 - 1
backend/src/main/java/com/jiayue/ssi/controller/SysUserController.java

@@ -528,7 +528,8 @@ public class SysUserController {
             if (newPassword.contains(sysUser.getUsername())) {
                 return ResponseVO.fail("密码不能含有账号!");
             }
-            if (SmUtil.sm3(newPassword).toUpperCase().equals(sysUser.getPassword())) {
+            String oldpwd = SM2CryptUtils.decrypt(sysUser.getPassword(),SecretKeyConstants.SERVER_PRIVATE_KEY);
+            if (SmUtil.sm3(newPassword).toUpperCase().equals(oldpwd)) {
                 return ResponseVO.fail("新密码不能与上次密码相同!");
             }
 
@@ -538,6 +539,11 @@ public class SysUserController {
                 return ResponseVO.fail(ruleInfo);
             }
 
+            // 验证旧密码是否正确
+            if (!oldpwd.equals(SmUtil.sm3(oldPassword).toUpperCase())){
+                return ResponseVO.fail("旧密码不正确!");
+            }
+
             // 新密码加密
             String sm3newpwd = SmUtil.sm3(newPassword).toUpperCase();
             // 再次sm2加密

BIN
ui/node_modules.zip


+ 17 - 3
ui/src/views/sysManager/userManager/index.vue

@@ -422,7 +422,8 @@ export default {
       this.$prompt('请输入登录密码', '鉴别操作', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
-        inputType: 'password',
+        inputType: 'text',
+        customClass:'no-autofill-pwd',
         inputValidator: (val) => {
           if (val === null || val.length < 1 || val.length > 20) {
             return false;
@@ -612,7 +613,8 @@ export default {
             this.$prompt('请输入登录密码', '鉴别操作', {
               confirmButtonText: '确定',
               cancelButtonText: '取消',
-              inputType: 'password',
+              inputType: 'text',
+              customClass:'no-autofill-pwd',
               inputValidator: (val) => {
                 if (val === null || val.length < 1 || val.length > 20) {
                   return false;
@@ -792,7 +794,8 @@ export default {
       this.$prompt('请输入密码', '鉴别操作', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
-        inputType: 'password',
+        inputType: 'text',
+        customClass:'no-autofill-pwd',
         inputValidator: (val) => {
           if (val === null || val.length < 1 || val.length > 20) {
             return false;
@@ -1158,3 +1161,14 @@ export default {
   }
 };
 </script>
+
+<style rel="stylesheet/scss" lang="scss">
+  .no-autofill-pwd{
+    .el-message-box__content{
+      .el-input__inner{
+        text-security:disc!important;
+        -webkit-text-security:disc!important;
+      }
+    }
+  }
+</style>

+ 10 - 3
ui/src/views/sysManager/userManager/profile/resetPwd.vue

@@ -1,13 +1,13 @@
 <template>
   <el-form ref="form" :model="pwd" :rules="rules" label-width="80px">
     <el-form-item label="旧密码" prop="oldPassword">
-      <el-input v-model="pwd.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
+      <el-input v-model="pwd.oldPassword" type="text" class="no-autofill-pwd"/>
     </el-form-item>
     <el-form-item label="新密码" prop="newPassword">
-      <el-input v-model="pwd.newPassword" placeholder="请输入新密码" type="password" show-password/>
+      <el-input v-model="pwd.newPassword" type="text" class="no-autofill-pwd"/>
     </el-form-item>
     <el-form-item label="确认密码" prop="confirmPassword">
-      <el-input v-model="pwd.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
+      <el-input v-model="pwd.confirmPassword" type="text" class="no-autofill-pwd"/>
     </el-form-item>
     <el-form-item>
       <el-button type="primary" size="mini" @click="submit">保存</el-button>
@@ -157,3 +157,10 @@ export default {
   }
 };
 </script>
+
+<style rel="stylesheet/scss" lang="scss">
+.no-autofill-pwd{
+  text-security:disc!important;
+  -webkit-text-security:disc!important;
+}
+</style>