mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 17:08:40 +08:00
Merge remote-tracking branch 'origin/dev-3.0.x' into dev-3.0.x
This commit is contained in:
commit
a9d65a4703
@ -57,7 +57,7 @@ public class SingleBlendRestrictedProcessor implements SmsProcessor, SmsDaoAware
|
||||
}
|
||||
int maximum = 0;
|
||||
try{
|
||||
maximum = Integer.parseInt(maximumObj) ;
|
||||
maximum = Integer.parseInt(String.valueOf(maximumObj)) ;
|
||||
}catch (Exception e){
|
||||
log.error("获取厂商级发送上限参数错误!请检查!");
|
||||
throw new IllegalArgumentException("获取厂商级发送上限参数错误");
|
||||
|
||||
@ -52,6 +52,11 @@
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-crypto</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
@ -1,22 +1,19 @@
|
||||
package org.dromara.oa.core.byteTalk.utils;
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.crypto.digest.HMac;
|
||||
import cn.hutool.crypto.digest.HmacAlgorithm;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.oa.comm.entity.Request;
|
||||
import org.dromara.oa.comm.enums.MessageType;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.dromara.oa.comm.enums.MessageType.BYTETALK_TEXT;
|
||||
|
||||
|
||||
/**
|
||||
* 飞书通知签名和信息构建
|
||||
* @author dongfeng
|
||||
@ -29,15 +26,9 @@ public class ByteTalkBuilder {
|
||||
//把timestamp+"\n"+密钥当做签名字符串
|
||||
String stringToSign = timestamp + "\n" + secret;
|
||||
//使用HmacSHA256算法计算签名
|
||||
Mac mac = null;
|
||||
try {
|
||||
mac = Mac.getInstance("HmacSHA256");
|
||||
mac.init(new SecretKeySpec(stringToSign.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
|
||||
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
byte[] signData = mac.doFinal(new byte[]{});
|
||||
return new String(Base64.getEncoder().encode(signData));
|
||||
HMac mac = new HMac(HmacAlgorithm.HmacSHA256, stringToSign.getBytes(StandardCharsets.UTF_8));
|
||||
byte[] signData = mac.digest(new byte[]{});
|
||||
return Base64.encode(signData);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,19 +1,17 @@
|
||||
package org.dromara.oa.core.dingTalk.utils;
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.crypto.digest.HMac;
|
||||
import cn.hutool.crypto.digest.HmacAlgorithm;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.oa.comm.entity.Request;
|
||||
import org.dromara.oa.comm.enums.MessageType;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@ -32,17 +30,11 @@ public class DingTalkBuilder {
|
||||
Long timestamp = System.currentTimeMillis();
|
||||
|
||||
String stringToSign = timestamp + "\n" + secret;
|
||||
Mac mac = null;
|
||||
HMac mac = new HMac(HmacAlgorithm.HmacSHA256, secret.getBytes(StandardCharsets.UTF_8));
|
||||
byte[] signData = mac.digest(stringToSign.getBytes(StandardCharsets.UTF_8));
|
||||
String sign;
|
||||
try {
|
||||
mac = Mac.getInstance("HmacSHA256");
|
||||
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
|
||||
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
|
||||
String sign = null;
|
||||
try {
|
||||
sign = URLEncoder.encode(new String(Base64.getEncoder().encode(signData)), StandardCharsets.UTF_8.toString());
|
||||
sign = URLEncoder.encode(Base64.encode(signData), StandardCharsets.UTF_8.toString());
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package org.dromara.sms4j.qiniu.util;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.crypto.digest.HMac;
|
||||
import cn.hutool.crypto.digest.HmacAlgorithm;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -8,8 +10,6 @@ import org.dromara.sms4j.comm.constant.Constant;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.qiniu.config.QiNiuConfig;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
@ -19,8 +19,6 @@ import java.security.NoSuchAlgorithmException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
import static org.apache.commons.codec.digest.HmacUtils.hmacSha1;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @Date: 2024/1/30 16:37 50
|
||||
@ -43,19 +41,15 @@ public class QiNiuUtils {
|
||||
if (ObjectUtil.isNotEmpty(body)) {
|
||||
dataToSign.append(body);
|
||||
}
|
||||
Mac sha1Mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
|
||||
SecretKeySpec secretKeySpec = new SecretKeySpec(qiNiuConfig.getAccessKeySecret().getBytes(StandardCharsets.UTF_8), HMAC_SHA1_ALGORITHM);
|
||||
sha1Mac.init(secretKeySpec);
|
||||
byte[] signData = sha1Mac.doFinal(dataToSign.toString().getBytes(StandardCharsets.UTF_8));
|
||||
HMac hMac = new HMac(HmacAlgorithm.HmacSHA1, qiNiuConfig.getAccessKeySecret().getBytes(StandardCharsets.UTF_8));
|
||||
byte[] signData = hMac.digest(dataToSign.toString().getBytes(StandardCharsets.UTF_8));
|
||||
String encodedSignature = Base64.getEncoder().encodeToString(signData);
|
||||
|
||||
System.out.println("encodedSignature = " + encodedSignature);
|
||||
|
||||
return "Qiniu " + qiNiuConfig.getAccessKeyId() + ":" + encodedSignature;
|
||||
}
|
||||
|
||||
public static Map<String, String> getHeaderAndSign(String url, HashMap<String, Object> hashMap, QiNiuConfig qiNiuConfig) {
|
||||
String signature = null;
|
||||
String signature;
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
|
||||
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
String signDate = dateFormat.format(new Date());
|
||||
@ -67,7 +61,7 @@ public class QiNiuUtils {
|
||||
}
|
||||
|
||||
//请求头
|
||||
Map<String, String> header = new HashMap<>();
|
||||
Map<String, String> header = new HashMap<>(3);
|
||||
header.put("Authorization", signature);
|
||||
header.put("X-Qiniu-Date", signDate);
|
||||
header.put("Content-Type", "application/json");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user