From f537abe9f3646c739beaf15076246a2f71a347e9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 20 二月 2025 16:57:55 +0800 Subject: [PATCH] IOS广告增加区域屏蔽 --- src/main/java/com/yeshi/buwan/aspect/SignAspect.java | 56 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/aspect/SignAspect.java b/src/main/java/com/yeshi/buwan/aspect/SignAspect.java index 4daac39..3168226 100644 --- a/src/main/java/com/yeshi/buwan/aspect/SignAspect.java +++ b/src/main/java/com/yeshi/buwan/aspect/SignAspect.java @@ -9,6 +9,7 @@ import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.yeshi.utils.StringUtil; @@ -16,7 +17,6 @@ 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.*; @@ -31,9 +31,9 @@ //绛惧悕楠岃瘉 @Around("execution(public * com.yeshi.buwan.controller.api.*.*(..))") public Object verifySign(ProceedingJoinPoint joinPoint) throws Throwable { - ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = servletContainer.getRequest(); - HttpServletResponse response = servletContainer.getResponse(); + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST); + HttpServletResponse response = ((ServletRequestAttributes) requestAttributes).getResponse(); PrintWriter out = null; AcceptData acceptData = null; Object[] args = joinPoint.getArgs(); @@ -48,26 +48,25 @@ //濡傛灉鏄疉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/',@@^"); + String sign = getNewSign(request, "8888B&*@-uWan88/',@@^"); + if (!sign.equalsIgnoreCase(acceptData.getSign())) { if (out == null) out = response.getWriter(); out.print(JsonUtil.loadFalseJson("绛惧悕閿欒")); return null; } - + } else if ("com.xinlian.hjtv.ios".equalsIgnoreCase(acceptData.getPackage())) { + //IOS闊╁墽绛惧悕鏂瑰紡 + String sign = getNewSign(request, "8888B&*@-hanJu88/',@@^"); + 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) @@ -100,10 +99,29 @@ detailSystem = systemService.getDetailSystemByPackage(acceptData.getChildPackage()); acceptData.setChildDetailSystem(detailSystem); } - - return joinPoint.proceed(args); } + public static String getNewSign(HttpServletRequest request, String signKey) { + 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, "&"); + str+=signKey; + System.out.println("鍔犲瘑鍓嶅瓧绗︿覆锛�"+str); + String sign = StringUtil.Md5(str ); + return sign; + } + + } -- Gitblit v1.8.0