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 | 42 +++++++++++++++++++++++++++++++++++-------
1 files changed, 35 insertions(+), 7 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 3aafcb1..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
@@ -42,7 +43,7 @@
}
@Around(EDP)
- public Object testAround(ProceedingJoinPoint joinPoint) throws IOException {
+ 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