From 1d28c69a351ae108f4116a10f19f615c89a660a2 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期四, 01 四月 2021 01:58:43 +0800
Subject: [PATCH] 首页数据修改

---
 src/main/java/com/yeshi/buwan/aspect/SignAspect.java |   53 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/aspect/SignAspect.java b/src/main/java/com/yeshi/buwan/aspect/SignAspect.java
index d9fa524..6d9561f 100644
--- a/src/main/java/com/yeshi/buwan/aspect/SignAspect.java
+++ b/src/main/java/com/yeshi/buwan/aspect/SignAspect.java
@@ -1,6 +1,6 @@
 package com.yeshi.buwan.aspect;
 
-import com.yeshi.buwan.domain.DetailSystem;
+import com.yeshi.buwan.domain.system.DetailSystem;
 import com.yeshi.buwan.service.imp.SystemService;
 import com.yeshi.buwan.util.JsonUtil;
 import com.yeshi.buwan.util.Utils;
@@ -11,12 +11,14 @@
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
+import org.yeshi.utils.StringUtil;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.*;
 
 @Component
 @Aspect
@@ -28,16 +30,16 @@
 
     //绛惧悕楠岃瘉
     @Around("execution(public * com.yeshi.buwan.controller.api.*.*(..))")
-    public Object verifySign(ProceedingJoinPoint joinPoint) throws IOException {
+    public Object verifySign(ProceedingJoinPoint joinPoint) throws Throwable {
         ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
         HttpServletRequest request = servletContainer.getRequest();
         HttpServletResponse response = servletContainer.getResponse();
         PrintWriter out = null;
-
+        AcceptData acceptData = null;
         Object[] args = joinPoint.getArgs();
         for (Object obj : args) {
             if (obj instanceof AcceptData) {
-                AcceptData acceptData = (AcceptData) obj;
+                acceptData = (AcceptData) obj;
                 if (acceptData != null) {
                     if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
                         acceptData.setChannel("appstore");
@@ -52,20 +54,39 @@
             }
         }
 
-        if (!Utils.signIsRight(request)) {
-            if (out == null)
-                out = response.getWriter();
-            out.print(JsonUtil.loadFalseJson("绛惧悕閿欒"));
-            return null;
+
+        //濡傛灉鏄疉ndroid鏂扮増鏈垯璋冪敤鏂扮殑绛惧悕鏂规硶
+        //甯冧父3.8.7涔嬪悗璋冪敤鏂扮殑绛惧悕鏂规硶
+        if (acceptData != null && "android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() >= 105) {
+            Map<String, String[]> params = request.getParameterMap();
+            //绛惧悕
+            List<String> list = new ArrayList<>();
+            for (Iterator<String> its = params.keySet().iterator(); its.hasNext(); ) {
+                String key = its.next();
+                if ("sign".equalsIgnoreCase(key))
+                    continue;
+                list.add(key + "=" + params.get(key)[0]);
+            }
+            Collections.sort(list);
+            String str = StringUtil.concat(list, "&");
+            String sign = StringUtil.Md5(str + "8888B&*@-uWan88/',@@^");
+            if (!sign.equalsIgnoreCase(acceptData.getSign())) {
+                if (out == null)
+                    out = response.getWriter();
+                out.print(JsonUtil.loadFalseJson("绛惧悕閿欒"));
+                return null;
+            }
+
+        } else {
+            if (!Utils.signIsRight(request)) {
+                if (out == null)
+                    out = response.getWriter();
+                out.print(JsonUtil.loadFalseJson("绛惧悕閿欒"));
+                return null;
+            }
         }
 
-        Object obj = null;
-        try {
-            obj = joinPoint.proceed(args);
-        } catch (Throwable e) {
-            e.printStackTrace();
-        }
-        return obj;
+        return joinPoint.proceed(args);
     }
 
 

--
Gitblit v1.8.0