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