Compare commits
4 Commits
e59dc804ab
...
0dc78a2b89
Author | SHA1 | Date | |
---|---|---|---|
0dc78a2b89 | |||
7ef0776296 | |||
b2bc6b3a6f | |||
b6301d2dc9 |
@@ -1,5 +1,7 @@
|
|||||||
package xyz.zhouxy.plusone.sms;
|
package xyz.zhouxy.plusone.sms;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.tencentcloudapi.common.Credential;
|
import com.tencentcloudapi.common.Credential;
|
||||||
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
||||||
import com.tencentcloudapi.common.profile.ClientProfile;
|
import com.tencentcloudapi.common.profile.ClientProfile;
|
||||||
@@ -8,11 +10,8 @@ import com.tencentcloudapi.sms.v20210111.SmsClient;
|
|||||||
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
|
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
|
||||||
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
|
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import xyz.zhouxy.plusone.constant.ErrorCodeConsts;
|
import xyz.zhouxy.plusone.exception.SysException;
|
||||||
import xyz.zhouxy.plusone.exception.BizException;
|
|
||||||
import xyz.zhouxy.plusone.sms.SmsProperties.SmsCredentialProperties;
|
import xyz.zhouxy.plusone.sms.SmsProperties.SmsCredentialProperties;
|
||||||
import xyz.zhouxy.plusone.sms.SmsProperties.SmsHttpProperties;
|
import xyz.zhouxy.plusone.sms.SmsProperties.SmsHttpProperties;
|
||||||
import xyz.zhouxy.plusone.sms.SmsProperties.SmsProxyProperties;
|
import xyz.zhouxy.plusone.sms.SmsProperties.SmsProxyProperties;
|
||||||
@@ -62,14 +61,13 @@ public class TencentSmsServiceImpl implements SmsService {
|
|||||||
var res = client.SendSms(req);
|
var res = client.SendSms(req);
|
||||||
|
|
||||||
// 输出json格式的字符串回包
|
// 输出json格式的字符串回包
|
||||||
System.out.println(SendSmsResponse.toJsonString(res));
|
log.info(SendSmsResponse.toJsonString(res));
|
||||||
|
|
||||||
// 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
|
// 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
|
||||||
// System.out.println(res.getRequestId());
|
// System.out.println(res.getRequestId());
|
||||||
|
|
||||||
} catch (TencentCloudSDKException e) {
|
} catch (TencentCloudSDKException e) {
|
||||||
log.error(e.getMessage(), e);
|
throw new SysException(e);
|
||||||
throw new BizException(ErrorCodeConsts.DEFAULT_ERROR_CODE, e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@ import xyz.zhouxy.plusone.system.application.query.result.MenuViewObject;
|
|||||||
public class MenuQueries {
|
public class MenuQueries {
|
||||||
|
|
||||||
public List<MenuViewObject> queryMenuTree(MenuQueryParams queryParams) {
|
public List<MenuViewObject> queryMenuTree(MenuQueryParams queryParams) {
|
||||||
|
// TODO【添加】 实现该查询
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,9 +7,7 @@ import java.security.NoSuchAlgorithmException;
|
|||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import xyz.zhouxy.plusone.exception.SysException;
|
||||||
import xyz.zhouxy.plusone.constant.ErrorCodeConsts;
|
|
||||||
import xyz.zhouxy.plusone.exception.BizException;
|
|
||||||
import xyz.zhouxy.plusone.util.RandomUtil;
|
import xyz.zhouxy.plusone.util.RandomUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,7 +15,6 @@ import xyz.zhouxy.plusone.util.RandomUtil;
|
|||||||
*
|
*
|
||||||
* @author <a href="https://gitee.com/zhouxy108">ZhouXY</a>
|
* @author <a href="https://gitee.com/zhouxy108">ZhouXY</a>
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
|
||||||
public final class PasswordUtil {
|
public final class PasswordUtil {
|
||||||
private static final char[] SALT_BASE_CHAR_ARRAY = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~`!@#$%^&*()_-+={}[]|\\:;\"',.<>?/"
|
private static final char[] SALT_BASE_CHAR_ARRAY = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~`!@#$%^&*()_-+={}[]|\\:;\"',.<>?/"
|
||||||
.toCharArray();
|
.toCharArray();
|
||||||
@@ -35,12 +32,12 @@ public final class PasswordUtil {
|
|||||||
int i = length > 0 ? length / 2 : 0;
|
int i = length > 0 ? length / 2 : 0;
|
||||||
var passwordWithSalt = salt.substring(0, i)
|
var passwordWithSalt = salt.substring(0, i)
|
||||||
+ password
|
+ password
|
||||||
+ salt.substring(1);
|
+ salt.substring(i);
|
||||||
String sha512Hex = sha512Hex(passwordWithSalt);
|
try {
|
||||||
if (sha512Hex == null) {
|
return sha512Hex(passwordWithSalt);
|
||||||
throw new BizException(ErrorCodeConsts.DEFAULT_ERROR_CODE, "未知错误:哈希加密失败!");
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
throw new SysException(e);
|
||||||
}
|
}
|
||||||
return sha512Hex;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,15 +54,12 @@ public final class PasswordUtil {
|
|||||||
throw new IllegalStateException("Utility class");
|
throw new IllegalStateException("Utility class");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String sha512Hex(String data) {
|
@Nonnull
|
||||||
try {
|
@SuppressWarnings("null")
|
||||||
|
private static String sha512Hex(String data) throws NoSuchAlgorithmException {
|
||||||
MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
|
MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
|
||||||
messageDigest.update(data.getBytes(StandardCharsets.UTF_8));
|
messageDigest.update(data.getBytes(StandardCharsets.UTF_8));
|
||||||
byte[] result = messageDigest.digest();
|
byte[] result = messageDigest.digest();
|
||||||
return new BigInteger(1, result).toString(16);
|
return new BigInteger(1, result).toString(16);
|
||||||
} catch (NoSuchAlgorithmException e) {
|
|
||||||
log.error("{}", e);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,9 +8,8 @@ import javax.annotation.Nonnull;
|
|||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
import xyz.zhouxy.plusone.commons.constant.PatternConsts;
|
import xyz.zhouxy.plusone.commons.constant.PatternConsts;
|
||||||
import xyz.zhouxy.plusone.constant.ErrorCodeConsts;
|
|
||||||
import xyz.zhouxy.plusone.domain.IValueObject;
|
import xyz.zhouxy.plusone.domain.IValueObject;
|
||||||
import xyz.zhouxy.plusone.exception.BizException;
|
import xyz.zhouxy.plusone.exception.SysException;
|
||||||
import xyz.zhouxy.plusone.system.util.PasswordUtil;
|
import xyz.zhouxy.plusone.system.util.PasswordUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,7 +36,7 @@ public class Password implements IValueObject {
|
|||||||
}
|
}
|
||||||
var salt = PasswordUtil.generateRandomSalt();
|
var salt = PasswordUtil.generateRandomSalt();
|
||||||
if (salt == null) {
|
if (salt == null) {
|
||||||
throw new BizException(ErrorCodeConsts.DEFAULT_ERROR_CODE, "未知错误:生成随机盐失败");
|
throw new SysException("未知错误:生成随机盐失败");
|
||||||
}
|
}
|
||||||
this.saltVal = salt;
|
this.saltVal = salt;
|
||||||
this.passwordVal = PasswordUtil.hashPassword(password, salt);
|
this.passwordVal = PasswordUtil.hashPassword(password, salt);
|
||||||
|
Reference in New Issue
Block a user