1. 修改密码新增运控系统配置

develop
admin 2024-11-25 11:29:52 +08:00
parent c6805509ae
commit 61e35acc10
3 changed files with 69 additions and 53 deletions

View File

@ -206,14 +206,14 @@ public class TrxServiceImpl implements TrxService {
// 处理ukey登录用户 // 处理ukey登录用户
log.info("开始软Key登录用户入库, userId:" + userId); log.info("开始软Key登录用户入库, userId:" + userId);
saveUserByTrx(userId, trxAuthModel.getPassword()); saveUserByTrx(userId, "");
log.info("软Key登录用户入库结束"); log.info("软Key登录用户入库结束");
// 登录 // 登录
log.info("开始软Key登录用户登录云管平台"); log.info("开始软Key登录用户登录云管平台");
log.info("用户pass" + trxAuthModel.getPassword()); log.info("用户pass" + trxAuthModel.getPassword());
User user = userRepository.getByUserId(userId); User user = userRepository.getByUserId(userId);
Encryptor encryptor = new AESEncryptor(); Encryptor encryptor = new AESEncryptor();
String password = encryptor.encrypt(trxAuthModel.getPassword(), null); String password = encryptor.encrypt(userId + "CMP", null);
login = userServiceImpl.login(user.getAccount(), password, null, null, true); login = userServiceImpl.login(user.getAccount(), password, null, null, true);
login.getData().put("trxToken", trxToken); login.getData().put("trxToken", trxToken);
log.info("软Key登录用户登录云管平台结束"); log.info("软Key登录用户登录云管平台结束");
@ -244,11 +244,11 @@ public class TrxServiceImpl implements TrxService {
log.info("开始新增天融信登录用户userId: " + userId); log.info("开始新增天融信登录用户userId: " + userId);
// 新增 以userId作为account 并添加注释 // 新增 以userId作为account 并添加注释
UserBean userBean = new UserBean(); UserBean userBean = new UserBean();
if (password.isEmpty()) { // if (password.isEmpty()) {
userBean.setPassword(userId + "CMP"); userBean.setPassword(userId + "CMP");
} else { // } else {
userBean.setPassword(password); // userBean.setPassword(password);
} // }
userBean.setSex(true); userBean.setSex(true);
userBean.setIsManager(true); userBean.setIsManager(true);
userBean.setUserId(userId); userBean.setUserId(userId);

View File

@ -13,6 +13,7 @@ import com.bocloud.sms.model.*;
import com.bocloud.sms.repository.*; import com.bocloud.sms.repository.*;
import com.bocloud.sms.service.utils.ExportUtil; import com.bocloud.sms.service.utils.ExportUtil;
import com.bocloud.sms.service.utils.ImportExcelUtil; import com.bocloud.sms.service.utils.ImportExcelUtil;
import com.bocloud.sms.service.utils.MessageDigestUtils;
import com.bocloud.sms.service.utils.YkUtils; import com.bocloud.sms.service.utils.YkUtils;
import com.bocloud.sms.utils.FavoriteComparator; import com.bocloud.sms.utils.FavoriteComparator;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -667,50 +668,62 @@ public class UserServiceImpl implements UserService {
// 根据userId获取运控系统用户信息 // 根据userId获取运控系统用户信息
log.info("查询当前用户信息userId: " + id); log.info("查询当前用户信息userId: " + id);
JSONObject params = new JSONObject(); JSONObject params = new JSONObject();
params.put("userId", String.valueOf(id));
params.put("oldPwd", oldPassword);
params.put("newPwd", password);
//请求运控修改密码机接口
JSONObject result = ykUtils.call(YkInf.updateUserPwd, params, JSONObject.class);
if (result.getInteger("returnCode") == 1) {
log.info("运控密码修改成功");
String path = User.class.getSimpleName() + "_" + id;
try (AutoCloseLock lock = lockFactory.getACLock(path)) {
Assert.isTrue(lock.acquire(10, TimeUnit.SECONDS), "请求超时");
Assert.isTrue(id.equals(requestContext.getTarget()), "非法请求");
User user = userRepository.query(id);
Assert.notNull(user, "用户信息不存在!");
String salt = UUID.randomUUID().toString();
// 加密
SHAEncryptor sha = new SHAEncryptor();
Encryptor encryptor = new AESEncryptor(); Encryptor encryptor = new AESEncryptor();
// 对原密码解密,并校验。 // 对原密码解密,并校验。
oldPassword = encryptor.decrypt(oldPassword.trim(), null); oldPassword = encryptor.decrypt(oldPassword.trim(), null);
Assert.isTrue(StringUtils.hasText(oldPassword), "旧密码不存在");
Result checkResult = this.check(id, oldPassword);
if (checkResult.isFailed()) {
return checkResult;
}
// 对前端传过来的密码进行解密
password = encryptor.decrypt(password.trim(), null); password = encryptor.decrypt(password.trim(), null);
Assert.isTrue(StringUtils.hasText(password), "新密码不存在。"); String encryptoldPassword = MessageDigestUtils.encrypt(oldPassword, MessageDigestUtils.SHA_256);
String encrypt = sha.encrypt(password, salt); String encryptPassword = MessageDigestUtils.encrypt(password, MessageDigestUtils.SHA_256);
user.setPassword(encrypt); log.info("查询当前用户信息password: " + encryptoldPassword);
user.setLastPwdModifyDate(new Date()); log.info("查询当前用户信息newPassword: " + encryptPassword);
userRepository.update(user); params.put("userId", String.valueOf(id));
// 准备随机数数据 params.put("oldPwd", encryptoldPassword);
AccountSecurity security = securityRepository.getByTarget(user.getId(), Catalog.User); params.put("newPwd", encryptPassword);
security.setSalt(salt); //请求运控修改密码机接口
// 更新随机数 JSONObject result = ykUtils.call(YkInf.updateUserPwd, params, JSONObject.class);
securityRepository.update(security); log.info("请求运控修改密码机接口返回 : " + JSONObject.toJSONString(result));
return new Result(true, "修改密码成功"); if(org.apache.commons.lang3.StringUtils.isNotEmpty(JSONObject.toJSONString(result))){
} if (result.getInteger("returnCode") == 1) {
log.info("运控密码修改成功");
return new Result(true, result.getString("msg"));
// String path = User.class.getSimpleName() + "_" + id;
// try (AutoCloseLock lock = lockFactory.getACLock(path)) {
// Assert.isTrue(lock.acquire(10, TimeUnit.SECONDS), "请求超时");
// Assert.isTrue(id.equals(requestContext.getTarget()), "非法请求");
// User user = userRepository.query(id);
// Assert.notNull(user, "用户信息不存在!");
// String salt = UUID.randomUUID().toString();
// // 加密
// SHAEncryptor sha = new SHAEncryptor();
// Encryptor encryptor = new AESEncryptor();
// // 对原密码解密,并校验。
// oldPassword = encryptor.decrypt(oldPassword.trim(), null);
// Assert.isTrue(StringUtils.hasText(oldPassword), "旧密码不存在");
// Result checkResult = this.check(id, oldPassword);
// if (checkResult.isFailed()) {
// return checkResult;
// }
// // 对前端传过来的密码进行解密
// password = encryptor.decrypt(password.trim(), null);
// Assert.isTrue(StringUtils.hasText(password), "新密码不存在。");
// String encrypt = sha.encrypt(password, salt);
// user.setPassword(encrypt);
// user.setLastPwdModifyDate(new Date());
// userRepository.update(user);
// // 准备随机数数据
// AccountSecurity security = securityRepository.getByTarget(user.getId(), Catalog.User);
// security.setSalt(salt);
// // 更新随机数
// securityRepository.update(security);
// }
} else { } else {
return new Result(true, "修改密码失败"); return new Result(false, result.getString("msg"));
}
}else {
return new Result(false, "请求运控修改密码机接口失败");
} }
} }
@Override @Override

View File

@ -132,16 +132,19 @@ public class MessageDigestUtils {
* Test * Test
*/ */
public static void main(String[] args) { public static void main(String[] args) {
String source = "0aece0ff48aafb9c481826d13ef5e3c8b74e44b4584b28a0fe499aee108227e8db8470f4b9f9ac5d2ab508a9ff84312da9f1646a8b5ed6570fd2f27790460e47"; // String source = "0aece0ff48aafb9c481826d13ef5e3c8b74e44b4584b28a0fe499aee108227e8db8470f4b9f9ac5d2ab508a9ff84312da9f1646a8b5ed6570fd2f27790460e47";
System.out.println("Source String:" + source); String source = "123456";
System.out.println("Encrypted String:"); //123456 加密后的数据
System.out.println("Use MD5: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.MD5)); // String source22 = "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92";
System.out.println("Use SHA-1: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_1)); // System.out.println("Source String:" + source);
// System.out.println("Encrypted String:");
// System.out.println("Use MD5: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.MD5));
// System.out.println("Use SHA-1: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_1));
System.out.println("Use SHA-256: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_256)); System.out.println("Use SHA-256: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_256));
System.out.println("Use SHA-384: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_384)); // System.out.println("Use SHA-384: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_384));
System.out.println("Use SHA-512: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_512)); // System.out.println("Use SHA-512: " + MessageDigestUtils.encrypt(source, MessageDigestUtils.SHA_512));
System.out.println("MD5 Salt: " + MessageDigestUtils.encryptWithSalt(source, "sxp", MessageDigestUtils.MD5)); // System.out.println("MD5 Salt: " + MessageDigestUtils.encryptWithSalt(source, "sxp", MessageDigestUtils.MD5));
} }
} }