From 5c0f842e318250eb1ad6d1a6905c7377cbf0e24a Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 09 一月 2024 16:45:41 +0800
Subject: [PATCH] 优化1.6 拆分费用bug
---
java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java | 95 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 89 insertions(+), 6 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java b/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
index 82f3bf8..63ae97c 100755
--- a/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
+++ b/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
@@ -14,6 +14,8 @@
import com.java110.core.log.LoggerFactory;
import com.java110.dto.reportData.ReportDataDto;
import com.java110.dto.reportData.ReportDataHeaderDto;
+import com.java110.dto.system.AppRoute;
+import com.java110.utils.cache.AppRouteCache;
import com.java110.utils.cache.CommonCache;
import com.java110.utils.cache.JWTCache;
import com.java110.utils.cache.MappingCache;
@@ -22,9 +24,12 @@
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.exception.NoAuthorityException;
import com.java110.utils.util.Base64Convert;
+import com.java110.utils.util.ListUtil;
import com.java110.utils.util.StringUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.slf4j.Logger;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
@@ -37,10 +42,7 @@
import java.security.*;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
-import java.util.Base64;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
/**
* 閴存潈宸ュ巶绫�
@@ -237,7 +239,7 @@
reqInfo += ((dataFlow.getReqBusiness() == null || dataFlow.getReqBusiness().size() == 0)
? dataFlow.getReqData() : dataFlow.getReqBusiness().toJSONString());
reqInfo += dataFlow.getAppRoutes().get(0).getSecurityCode();
- logger.debug("鍔犲瘑瀛楃涓�={}",reqInfo);
+ logger.debug("鍔犲瘑瀛楃涓�={}", reqInfo);
return md5(reqInfo);
}
@@ -284,12 +286,93 @@
reqInfo += "GET".equals(dataFlow.getRequestHeaders().get(CommonConstant.HTTP_METHOD)) ?
param : dataFlow.getReqData();
reqInfo += dataFlow.getAppRoutes().get(0).getSecurityCode();
- logger.debug("鍔犲瘑瀛楃涓�={}",reqInfo);
+ logger.debug("鍔犲瘑瀛楃涓�={}", reqInfo);
return md5(reqInfo);
}
/**
+ * 鍒涘缓 绛惧悕
+ * @param headers
+ * @param httpMethod
+ * @param url
+ * @param param
+ */
+ public static void createSign(HttpHeaders headers, HttpMethod httpMethod, String url, String param) {
+
+
+
+ String appId = headers.getFirst(CommonConstant.HTTP_APP_ID);
+ if (StringUtil.isEmpty(appId)) {
+ appId = headers.getFirst(CommonConstant.APP_ID);
+ }
+ String transactionId = headers.getFirst(CommonConstant.HTTP_TRANSACTION_ID);
+ if (StringUtil.isEmpty(transactionId)) {
+ transactionId = headers.getFirst(CommonConstant.TRANSACTION_ID);
+ }
+ String requestTime = headers.getFirst(CommonConstant.HTTP_REQ_TIME);
+ if (StringUtil.isEmpty(transactionId)) {
+ requestTime = headers.getFirst(CommonConstant.REQUEST_TIME);
+ }
+
+ List<AppRoute> appRoutes = AppRouteCache.getAppRoute(appId);
+ if (ListUtil.isNull(appRoutes)) {
+ return;
+ }
+ if (StringUtil.isEmpty(appRoutes.get(0).getSecurityCode())) {
+ return;
+ }
+ String paramStr = "";
+ if (HttpMethod.GET == httpMethod) {
+ paramStr = url.substring(url.indexOf("?"));
+ } else {
+ paramStr = param;
+ }
+ String sign = transactionId + requestTime + appId + paramStr + appRoutes.get(0).getSecurityCode();
+ headers.remove("sign");
+ headers.add("sign", md5(sign));
+ }
+
+
+ /**
+ * 鍒涘缓 绛惧悕
+ * @param headers
+ * @param httpMethod
+ * @param url
+ * @param param
+ */
+ public static void createSign(Map<String, String> headers, HttpMethod httpMethod, String url, String param) {
+ String appId = headers.get(CommonConstant.HTTP_APP_ID);
+ if (StringUtil.isEmpty(appId)) {
+ appId = headers.get(CommonConstant.APP_ID);
+ }
+ String transactionId = headers.get(CommonConstant.HTTP_TRANSACTION_ID);
+ if (StringUtil.isEmpty(transactionId)) {
+ transactionId = headers.get(CommonConstant.TRANSACTION_ID);
+ }
+ String requestTime = headers.get(CommonConstant.HTTP_REQ_TIME);
+ if (StringUtil.isEmpty(transactionId)) {
+ requestTime = headers.get(CommonConstant.REQUEST_TIME);
+ }
+
+ List<AppRoute> appRoutes = AppRouteCache.getAppRoute(appId);
+ if (ListUtil.isNull(appRoutes)) {
+ return;
+ }
+ if (StringUtil.isEmpty(appRoutes.get(0).getSecurityCode())) {
+ return;
+ }
+ String paramStr = "";
+ if (HttpMethod.GET == httpMethod) {
+ paramStr = url.substring(url.indexOf("?"));
+ } else {
+ paramStr = param;
+ }
+ String sign = transactionId + requestTime + appId + paramStr + appRoutes.get(0).getSecurityCode();
+ headers.put("sign", md5(sign));
+ }
+
+ /**
* md5鍔犲瘑
*
* @param transactionId 娴佹按
--
Gitblit v1.8.0