Merge branch 'test/stable' into release/3.0
This commit is contained in:
@@ -12,23 +12,23 @@ public class MQConfig {
|
|||||||
// public static final String GENERATE_QUEUE = "generate-queue-test";
|
// public static final String GENERATE_QUEUE = "generate-queue-test";
|
||||||
// ==================================================================
|
// ==================================================================
|
||||||
// public static final String GENERATE_QUEUE = "generate-queue-local";
|
// public static final String GENERATE_QUEUE = "generate-queue-local";
|
||||||
public static final String GENERATE_QUEUE = "generate-queue-prod";
|
public static final String GENERATE_QUEUE = "generate-queue-dev";
|
||||||
// public static final String GENERATE_QUEUE = "generate-queue-prod";
|
// public static final String GENERATE_QUEUE = "generate-queue-prod";
|
||||||
//
|
//
|
||||||
// public static final String SR_QUEUE = "SR-queue-local";
|
// public static final String SR_QUEUE = "SR-queue-local";
|
||||||
public static final String SR_QUEUE = "SR-queue-prod";
|
public static final String SR_QUEUE = "SR-queue-dev";
|
||||||
// public static final String SR_QUEUE = "SR-queue-prod";
|
// public static final String SR_QUEUE = "SR-queue-prod";
|
||||||
//
|
//
|
||||||
// public static final String SR_RESULT_QUEUE = "SuperResolution-local";
|
// public static final String SR_RESULT_QUEUE = "SuperResolution-local";
|
||||||
public static final String SR_RESULT_QUEUE = "SuperResolution-prod";
|
public static final String SR_RESULT_QUEUE = "SuperResolution-dev";
|
||||||
// public static final String SR_RESULT_QUEUE = "SuperResolution-prod";
|
// public static final String SR_RESULT_QUEUE = "SuperResolution-prod";
|
||||||
//
|
//
|
||||||
// public static final String GENERATE_RESULT_QUEUE = "GenerateImage-local";
|
// public static final String GENERATE_RESULT_QUEUE = "GenerateImage-local";
|
||||||
public static final String GENERATE_RESULT_QUEUE = "GenerateImage-prod";
|
public static final String GENERATE_RESULT_QUEUE = "GenerateImage-dev";
|
||||||
|
|
||||||
public static final String TO_PRODUCT_IMAGE_RESULT_QUEUE = "ToProductImage-prod";
|
public static final String TO_PRODUCT_IMAGE_RESULT_QUEUE = "ToProductImage-dev";
|
||||||
|
|
||||||
public static final String RELIGHT_RESULT_QUEUE = "Relight-prod";
|
public static final String RELIGHT_RESULT_QUEUE = "Relight-dev";
|
||||||
public MQConfig() {
|
public MQConfig() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class AccountTask {
|
|||||||
private AccountService accountService;
|
private AccountService accountService;
|
||||||
|
|
||||||
/** 每周日晚上刷新 年付用户、月付用户的积分 */
|
/** 每周日晚上刷新 年付用户、月付用户的积分 */
|
||||||
@Scheduled(cron = "59 59 23 ? * SUN")
|
// @Scheduled(cron = "59 59 23 ? * SUN")
|
||||||
// @Scheduled(cron = "59 59 23 * * ?")
|
// @Scheduled(cron = "59 59 23 * * ?")
|
||||||
public void refreshCreditsMonthly(){
|
public void refreshCreditsMonthly(){
|
||||||
log.info("每周日晚11:59:59刷新付费用户积分为 6000");
|
log.info("每周日晚11:59:59刷新付费用户积分为 6000");
|
||||||
@@ -23,7 +23,7 @@ public class AccountTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// todo 多久执行一次?
|
// todo 多久执行一次?
|
||||||
@Scheduled(cron = "0 */5 * * * *") // Run every 5 minutes
|
// @Scheduled(cron = "0 */5 * * * *") // Run every 5 minutes
|
||||||
public void getPaidUser(){
|
public void getPaidUser(){
|
||||||
// 获取code-create 表中 指定日期之后 订单状态为wc-processing的订单
|
// 获取code-create 表中 指定日期之后 订单状态为wc-processing的订单
|
||||||
accountService.extendValidityForCC();
|
accountService.extendValidityForCC();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ai.da.common.utils;
|
package com.ai.da.common.utils;
|
||||||
|
|
||||||
|
import cn.hutool.core.io.resource.ClassPathResource;
|
||||||
import com.ai.da.model.dto.AlipayHKParametersDTO;
|
import com.ai.da.model.dto.AlipayHKParametersDTO;
|
||||||
import com.ai.da.model.dto.AlipayHKRequestDTO;
|
import com.ai.da.model.dto.AlipayHKRequestDTO;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -14,6 +15,7 @@ import org.bouncycastle.crypto.util.PublicKeyFactory;
|
|||||||
import org.bouncycastle.openssl.PEMParser;
|
import org.bouncycastle.openssl.PEMParser;
|
||||||
import org.bouncycastle.util.io.pem.PemObject;
|
import org.bouncycastle.util.io.pem.PemObject;
|
||||||
import org.bouncycastle.util.io.pem.PemReader;
|
import org.bouncycastle.util.io.pem.PemReader;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -165,7 +167,23 @@ public class AlipayHKEncryptionUtil {
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private static PrivateKey readPrivateKeyFromFile(String filePath) throws Exception {
|
private static PrivateKey readPrivateKeyFromFile(String filePath) throws Exception {
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(filePath));
|
ClassPathResource classPathResource = new ClassPathResource(filePath);
|
||||||
|
InputStream inputstream = classPathResource.getStream();
|
||||||
|
String privateKeyContent = getString(inputstream);
|
||||||
|
|
||||||
|
// 进行 Base64 解码
|
||||||
|
byte[] privateKeyBytes = Base64.getDecoder().decode(privateKeyContent);
|
||||||
|
|
||||||
|
// 根据 PKCS8 格式的私钥字节数组构造私钥对象
|
||||||
|
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||||
|
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
|
||||||
|
return keyFactory.generatePrivate(keySpec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static String getString(InputStream inputstream) throws IOException {
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream));
|
||||||
|
// BufferedReader reader = new BufferedReader(new FileReader(filePath));
|
||||||
StringBuilder keyBuffer = new StringBuilder();
|
StringBuilder keyBuffer = new StringBuilder();
|
||||||
String line;
|
String line;
|
||||||
|
|
||||||
@@ -180,14 +198,7 @@ public class AlipayHKEncryptionUtil {
|
|||||||
.replace("-----BEGIN PRIVATE KEY-----", "")
|
.replace("-----BEGIN PRIVATE KEY-----", "")
|
||||||
.replace("-----END PRIVATE KEY-----", "")
|
.replace("-----END PRIVATE KEY-----", "")
|
||||||
.replaceAll("\\s+", ""); // 去除空格、换行等字符
|
.replaceAll("\\s+", ""); // 去除空格、换行等字符
|
||||||
|
return privateKeyContent;
|
||||||
// 进行 Base64 解码
|
|
||||||
byte[] privateKeyBytes = Base64.getDecoder().decode(privateKeyContent);
|
|
||||||
|
|
||||||
// 根据 PKCS8 格式的私钥字节数组构造私钥对象
|
|
||||||
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
|
||||||
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
|
|
||||||
return keyFactory.generatePrivate(keySpec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -233,7 +244,7 @@ public class AlipayHKEncryptionUtil {
|
|||||||
|
|
||||||
// 使用 RSA 公钥加密 AES 密钥
|
// 使用 RSA 公钥加密 AES 密钥
|
||||||
String rsaPublicKeyPath = publicKeyPath;
|
String rsaPublicKeyPath = publicKeyPath;
|
||||||
PublicKey publicKey = readPublicKey(new File(rsaPublicKeyPath));
|
PublicKey publicKey = readPublicKey(rsaPublicKeyPath);
|
||||||
|
|
||||||
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
|
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
|
||||||
// Cipher rsaCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
// Cipher rsaCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||||
@@ -313,11 +324,14 @@ public class AlipayHKEncryptionUtil {
|
|||||||
System.out.println("数字签名验证结果:" + signatureValid);
|
System.out.println("数字签名验证结果:" + signatureValid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PublicKey readPublicKey(File file) throws Exception {
|
// public static PublicKey readPublicKey(File file) throws Exception {
|
||||||
|
public static PublicKey readPublicKey(String fileName) throws Exception {
|
||||||
KeyFactory factory = KeyFactory.getInstance("RSA");
|
KeyFactory factory = KeyFactory.getInstance("RSA");
|
||||||
|
|
||||||
try (FileReader keyReader = new FileReader(file);
|
ClassPathResource classPathResource = new ClassPathResource(fileName);
|
||||||
PemReader pemReader = new PemReader(keyReader)) {
|
InputStream inputStream = classPathResource.getStream();
|
||||||
|
BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream));
|
||||||
|
try (PemReader pemReader = new PemReader(fileReader)) {
|
||||||
|
|
||||||
PemObject pemObject = pemReader.readPemObject();
|
PemObject pemObject = pemReader.readPemObject();
|
||||||
byte[] content = pemObject.getContent();
|
byte[] content = pemObject.getContent();
|
||||||
@@ -338,8 +352,10 @@ public class AlipayHKEncryptionUtil {
|
|||||||
Base64.Decoder decoder = Base64.getDecoder();
|
Base64.Decoder decoder = Base64.getDecoder();
|
||||||
// Verify key
|
// Verify key
|
||||||
try {
|
try {
|
||||||
|
ClassPathResource classPathResource = new ClassPathResource(CODPublicKeyPath);
|
||||||
|
InputStream inputstream = classPathResource.getStream();
|
||||||
// 从指定的路径读取公钥文件
|
// 从指定的路径读取公钥文件
|
||||||
InputStreamReader isrPub = new InputStreamReader(new FileInputStream(CODPublicKeyPath));
|
InputStreamReader isrPub = new InputStreamReader(inputstream);
|
||||||
PEMParser pemParserPub = new PEMParser(isrPub);
|
PEMParser pemParserPub = new PEMParser(isrPub);
|
||||||
// 使用 PEMParser 解析公钥文件
|
// 使用 PEMParser 解析公钥文件
|
||||||
SubjectPublicKeyInfo pubInfo = (SubjectPublicKeyInfo) pemParserPub.readObject();
|
SubjectPublicKeyInfo pubInfo = (SubjectPublicKeyInfo) pemParserPub.readObject();
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
#spring.profiles.active=prod
|
#spring.profiles.active=prod
|
||||||
|
|
||||||
#<23><><EFBFBD><EFBFBD>application-dev<65>ļ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
#<23><><EFBFBD><EFBFBD>application-dev<65>ļ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
spring.profiles.active=prod
|
spring.profiles.active=dev
|
||||||
|
|||||||
9
src/main/resources/files/COD-public-key.txt
Normal file
9
src/main/resources/files/COD-public-key.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAymkBAWixxUi9IAeMWgsq
|
||||||
|
K92AzFbe0qzzYPdkoh15ymL2A5MkYH7asnhFwclgdiFmd9a0TbZP+t/SzWW8UUzN
|
||||||
|
1pXoEp48R+eguGTt5xkJwb10+H6quVXF/Ezzid5yzVW3dcYRp8qUlFr0XBpvkK9l
|
||||||
|
FpPzh2+mwVEAsgBMXq/K50ZiX2dlkPZ7ffkVPWaK2ESIo3YgfM6dmiiza0hPWJ35
|
||||||
|
UgTH5rwJ7vN3IdOJTlkQOvrIrj2ocPcrudeEwqybIbCGhgRBwQSBsXQOO4U//rE4
|
||||||
|
VU+0LF/3uQgXkvVY1+a1JLiTncZYKGEQ/NtxM+dGtYWV2gPhQRyJ7Z77OX0XCbcn
|
||||||
|
zwIDAQAB
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDD+NUduhLJcb2Z
|
||||||
|
ryLwtIHdmjfh6Wn73E9umHmdPf6yF7IbDoTDBmIAfaPU/oiLgrka3fKGCkn/yHvW
|
||||||
|
QcL+Ry96/Uu+iIN9SbG5vPVvLtLfx+5++IE8p3RxcSDQggqFuJ+osebXeVIrOcTZ
|
||||||
|
s7nXCqGenTcagv2eJESiq712fcBvY1wVgilT6ERVQy+zdvwAOiS6wXF/51AueP+E
|
||||||
|
rNDHuPLkGH6JhLtO4LffeYgM/Th7eCl/WWLkiVMSoeJt7vWFe4bYV/IYW1qI2aQX
|
||||||
|
H1DYmvwgDfDv8jRORD9D191YBqq1l3Tw7VSjFrpydFvSK46dbXKBj3oA5ZiJ+Ttj
|
||||||
|
ZCtBRiOdAgMBAAECggEAUKl4Fs9C8lV1o+85Y3f4yBy1CbCIZhltPGlYDUe6MNWe
|
||||||
|
ApL8REW5Sthr+bx2uW2qAQv/yfosMTL0/eB9gSoNugLODXOlI4mUtI25O/U66M8j
|
||||||
|
NHHWx/9o51SYHBqaeCXg2Y+4I1KVZqNVigH26TNACMhPKQNnnpLxCT/FMSNbdLzo
|
||||||
|
wfFMyjN7R3Hc8ZB1C2zx+fLJm1DNZeOJOHAkW1LprlotRv6eq3lOwZaDDUTB5xhT
|
||||||
|
0Erev3djC/R08Fne1y09ukar8z0tX3Fm9SzHJDFVoh1HOYPWayCiAxOhip+JnFct
|
||||||
|
rtK5jjuB8DAP4Q1k12yOWUFwb6NOG9Hf/G6XExRPBQKBgQD1P2SnKD1IlNSrvVJn
|
||||||
|
2HzKnBVllVo50fbv7SpnP8H1B5vt2Qo/mgOGtzbeXyK4mcLFaWg9++BrsjTXwZFi
|
||||||
|
wmKeJgNI822DPhF5qQhK7Cc+WMwesufGrTnmRUOEFYehz9ffZBvMa1s/ObIEyLcr
|
||||||
|
tYitT74+nFdRPtr+8PN06QMEcwKBgQDMkGFWhSO7p7VMuV0H0uC1fj3GGtVvM+Ps
|
||||||
|
a9ASs0HBhQaOpberkKY9vgry6HoJ8CGvbrxlmc3JoYPRwKN3oQRYLvGSF96HAg9i
|
||||||
|
643FmVAWiVzHpjYX9fMJyCzXiOw6Qet8Zp3Ewaw9BBG0200Fj6/zGc8XEqNjIv5Q
|
||||||
|
DQ9MosRDrwKBgQCU5i5IRugeXy5YLxQPNKNfqDBdgrZLEK2qsgXithUencYQPIw6
|
||||||
|
XVnyut43WO+NwN0+WmcN6xUwjfwDWuTYX0jc2Bt6eUFuQ4r8oKIGSybwdZ1IrjqG
|
||||||
|
p7nVkwwQ77lvhu98FB3EmRHHa1IoEW0Uvp0DDL1m6ikhjNYNn2FRA//u/QKBgGbY
|
||||||
|
a+eo1ldBMPha9Te6wLjeuEYCNa5L41p4tcrBDt0xeSN8k4QRHFNMWYrYcIrQjM77
|
||||||
|
mIJoOjsWFgT9mfHKJToEl/VAROORmJS+Iq/mrYo3E0tY+DdBsygG2Oyf7Uw42iDY
|
||||||
|
IpfKW0Lt6c0IuIeEPwy0vBY4i6aK8Frkxf1ck9oHAoGBAKFQg/c36J6tjnttpmes
|
||||||
|
R/zijp1ROE+z+dMmm3icDhCDvvR6MnHa2Y9ittNWdEUosZk9FsFn62YNtJJV2SIN
|
||||||
|
DDn0ASLtBkeCd8yad5uzUb7Umci9V7TP5c0NE3DK95FmciLGOuRbFyq1Z8edHnaS
|
||||||
|
zgLnf4yb25eCMLEG0Z2ugN3C
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw/jVHboSyXG9ma8i8LSB
|
||||||
|
3Zo34elp+9xPbph5nT3+sheyGw6EwwZiAH2j1P6Ii4K5Gt3yhgpJ/8h71kHC/kcv
|
||||||
|
ev1LvoiDfUmxubz1by7S38fufviBPKd0cXEg0IIKhbifqLHm13lSKznE2bO51wqh
|
||||||
|
np03GoL9niREoqu9dn3Ab2NcFYIpU+hEVUMvs3b8ADokusFxf+dQLnj/hKzQx7jy
|
||||||
|
5Bh+iYS7TuC333mIDP04e3gpf1li5IlTEqHibe71hXuG2FfyGFtaiNmkFx9Q2Jr8
|
||||||
|
IA3w7/I0TkQ/Q9fdWAaqtZd08O1Uoxa6cnRb0iuOnW1ygY96AOWYifk7Y2QrQUYj
|
||||||
|
nQIDAQAB
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
Reference in New Issue
Block a user