From e1a62ec62e7331d97af9302e90e1ce44af8235eb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 27 一月 2021 15:26:55 +0800
Subject: [PATCH] 拼多多授权绑定

---
 fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java |   44 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java
index d02f3d0..7d44e31 100644
--- a/fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java
+++ b/fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java
@@ -1,6 +1,5 @@
 package com.yeshi.fanli.aspect;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -11,6 +10,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.yeshi.fanli.util.SystemInfoUtil;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
@@ -27,6 +27,7 @@
 import com.yeshi.fanli.util.ThreadUtil;
 
 import net.sf.json.JSONObject;
+import org.yeshi.utils.SystemUtil;
 
 //瀹㈡埛绔帴鍙g鍚嶉獙璇�
 @Component
@@ -41,8 +42,8 @@
 		KEY = Constant.systemCommonConfig.getSignKey();
 	}
 
-//	@Around(EDP)
-	public Object testAround(ProceedingJoinPoint joinPoint) throws IOException {
+	@Around(EDP)
+	public Object testAround(ProceedingJoinPoint joinPoint) throws Throwable {
 		Object[] args = joinPoint.getArgs();
 		PrintWriter out = null;
 		ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder
@@ -95,6 +96,9 @@
 				return null;
 			}
 
+			if(acceptData!=null)
+				acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
+
 			final String url = request.getRequestURI();
 			@SuppressWarnings("unchecked")
 			final Map<String, Object> params = request.getParameterMap();
@@ -125,7 +129,10 @@
 
 			} catch (Throwable e) {
 				LogHelper.errorDetailInfo(e, getHttpServletParams(request), request.getRequestURI().toString());
-				out.print(JsonUtil.loadFalseResult(90009, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"));
+				if (!Constant.IS_TEST)
+					out.print(JsonUtil.loadFalseResult(90009, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"));
+				else
+					throw e;
 			}
 			return obj;
 		} else {
@@ -134,7 +141,7 @@
 			data.put("msg", "绛惧悕閿欒");
 			out.print(data);
 			out.close();
-			LogHelper.error("绛惧悕閿欒:" + getHttpServletParams(request));
+			LogHelper.error("绛惧悕閿欒:" + request.getRequestURI() + "-" + getHttpServletParams(request));
 			return null;
 		}
 	}
@@ -193,9 +200,9 @@
 		while (its.hasNext()) {
 			String key = its.next();
 
-//			if (key.equalsIgnoreCase("callback")) {
-//				fromWEB = true;
-//			}
+			// if (key.equalsIgnoreCase("callback")) {
+			// fromWEB = true;
+			// }
 
 			if (key.equalsIgnoreCase("sign") || key.equalsIgnoreCase("callback") || key.equalsIgnoreCase("_")) {
 				continue;
@@ -221,4 +228,25 @@
 		}
 	}
 
+	public static boolean signIsRight(JSONObject json) {
+		List<String> list = new ArrayList<>();
+		for (Iterator<String> its = json.keySet().iterator(); its.hasNext();) {
+			String key = its.next();
+			if (!key.equalsIgnoreCase("sign"))
+				list.add(key + "=" + json.optString(key));
+		}
+		Collections.sort(list);
+		String str = "";
+		for (String st : list) {
+			str += st + "&";
+		}
+		String sign = StringUtil.Md5(str + KEY);
+		if (sign.equalsIgnoreCase(json.optString("sign"))) {
+			return true;
+		} else {
+			return false;
+		}
+
+	}
+
 }

--
Gitblit v1.8.0