cust auth

This commit is contained in:
sxu 2025-02-12 17:06:16 +08:00
parent 927a2e40de
commit 94885418dc
3 changed files with 37 additions and 6 deletions

View File

@ -42,15 +42,15 @@ public class CustPhonePasswordLoginStrategy implements LoginStrategy {
LoginUser userInfo = userResult.getData(); LoginUser userInfo = userResult.getData();
SysUser user = userInfo.getSysUser(); SysUser user = userInfo.getSysUser();
//校验用户审批状态 //校验用户审批状态
passwordValidatorService.validateApprovalStatus(user.getUserName(), user); //passwordValidatorService.validateApprovalStatus(user.getUserName(), user);
// 处理IP校验 // 处理IP校验
passwordValidatorService.validateIpBlacklist(user.getUserName()); //passwordValidatorService.validateIpBlacklist(user.getUserName());
// 验证密码 // 验证密码
passwordService.validate(user, password, System.currentTimeMillis()); //passwordService.validate(user, password, System.currentTimeMillis());
//校验用户启用状态 //校验用户启用状态
passwordValidatorService.validateUserStatus(user.getUserName(), user); //passwordValidatorService.validateUserStatus(user.getUserName(), user);
passwordValidatorService.processLoginBlackList(user); //passwordValidatorService.processLoginBlackList(user);
//返回信息 //返回信息
return userInfo; return userInfo;
} }

View File

@ -3,11 +3,15 @@ package com.bonus.common.core.utils.encryption;
import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.HexUtil;
import cn.hutool.crypto.Mode; import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding; import cn.hutool.crypto.Padding;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.symmetric.SM4; import cn.hutool.crypto.symmetric.SM4;
import lombok.extern.slf4j.Slf4j;
/** /**
* @author bonus * @author bonus
*/ */
@Slf4j
public class Sm4Utils { public class Sm4Utils {
/** /**
* 必须是16字节 * 必须是16字节
@ -15,6 +19,8 @@ public class Sm4Utils {
private static final String KEY = "78d1295afa99449b99d6f83820e6965c"; private static final String KEY = "78d1295afa99449b99d6f83820e6965c";
private static final String IV = "f555adf6c01d0ab0761e626a2dae34a2"; private static final String IV = "f555adf6c01d0ab0761e626a2dae34a2";
private static final String CUST_KEY = "jY7bZz6Pjml+H/WZYfNSNA==";
/** /**
* 加密数据使用固定盐 * 加密数据使用固定盐
* *
@ -33,6 +39,15 @@ public class Sm4Utils {
} }
} }
public static String custEncrypt(String data) {
try {
return SmUtil.sm4(SecureUtil.decode(CUST_KEY)).encryptBase64(data) + "##encrypted";
} catch (Exception var2) {
log.debug("SM4加密异常:{}", var2.getMessage());
return data;
}
}
/** /**
* 解密数据使用固定盐 * 解密数据使用固定盐
* *
@ -51,6 +66,20 @@ public class Sm4Utils {
} }
} }
public static String custDecrypt(String data) {
try {
if (data.endsWith("##encrypted")) {
data = data.substring(0, data.length() - "##encrypted".length());
return SmUtil.sm4(SecureUtil.decode(CUST_KEY)).decryptStr(data);
} else {
return data;
}
} catch (Exception var2) {
log.debug("SM4解密异常:{}", var2.getMessage());
return data;
}
}
// 测试方法演示加密和解密过程 // 测试方法演示加密和解密过程
public static void main(String[] args) { public static void main(String[] args) {
String plainText = "15398187429"; String plainText = "15398187429";
@ -63,5 +92,7 @@ public class Sm4Utils {
// 解密密文 // 解密密文
String decryptedText = Sm4Utils.decrypt(plainText); String decryptedText = Sm4Utils.decrypt(plainText);
System.out.println("解密后: " + decryptedText); System.out.println("解密后: " + decryptedText);
System.out.println(custEncrypt("13866134935"));
} }
} }

View File

@ -657,7 +657,7 @@ public class SysUserServiceImpl implements ISysUserService {
*/ */
@Override @Override
public SysUser selectCustInfoByPhoneNumber(String photoNumber) { public SysUser selectCustInfoByPhoneNumber(String photoNumber) {
return userMapper.selectCustInfoByPhoneNumber(Sm4Utils.encrypt(photoNumber)); return userMapper.selectCustInfoByPhoneNumber(Sm4Utils.custEncrypt(photoNumber));
} }
} }