From 452714cdffb21300ed64d5818efaa9cc38c3ee83 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 17 十二月 2020 18:35:43 +0800
Subject: [PATCH] rpc服务引用优化

---
 service-daylucky/src/main/java/com/ks/daylucky/aspect/ApiClientSignAspect.java |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/service-daylucky/src/main/java/com/ks/daylucky/aspect/ApiClientSignAspect.java b/service-daylucky/src/main/java/com/ks/daylucky/aspect/ApiClientSignAspect.java
index 5466e8e..93b073d 100644
--- a/service-daylucky/src/main/java/com/ks/daylucky/aspect/ApiClientSignAspect.java
+++ b/service-daylucky/src/main/java/com/ks/daylucky/aspect/ApiClientSignAspect.java
@@ -30,21 +30,29 @@
     public Object validSign(ProceedingJoinPoint joinPoint) throws Throwable {
         ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder
                 .getRequestAttributes();
-        PrintWriter out = servletContainer.getResponse().getWriter();
+
         HttpServletRequest request = servletContainer.getRequest();
-        Map<String, String[]> paramsMap = request.getParameterMap();
+        Map<String, String[]> pm = request.getParameterMap();
+        Map<String, String> paramsMap = new HashMap<>();
+        for (Iterator<String> its = pm.keySet().iterator(); its.hasNext(); ) {
+            String key = its.next();
+            paramsMap.put(key, pm.get(key)[0]);
+        }
+
+
         List<String> dataSource = new ArrayList<>();
         for (Iterator<String> its = paramsMap.keySet().iterator(); its.hasNext(); ) {
             String key = its.next();
             if (!key.equalsIgnoreCase("sign")) {
-                dataSource.add(key + "=" + paramsMap.get(key).toString());
+                dataSource.add(key + "=" + paramsMap.get(key));
             }
         }
         Collections.sort(dataSource);
+        String src = StringUtil.concat(dataSource, "&") + SECRET;
+        String sign = StringUtil.Md5(src);
 
-        String sign = StringUtil.Md5(StringUtil.concat(dataSource, "&") + SECRET);
-
-        if (!sign.equalsIgnoreCase(paramsMap.get("sign") + "")) {
+        if (!sign.equalsIgnoreCase(paramsMap.get("sign"))) {
+            PrintWriter out = servletContainer.getResponse().getWriter();
             //绛惧悕鍑洪敊
             out.print(JsonUtil.loadFalseResult(-1, "绛惧悕鍑洪敊"));
             out.close();

--
Gitblit v1.8.0