Procházet zdrojové kódy

实现GET请求参数加密

Li Yuan před 1 rokem
rodič
revize
6785113d29

+ 10 - 7
ibps-basis-root/modules/basis-zuul/src/main/java/com/lc/ibps/cloud/gateway/filter/SignFilter.java

@@ -5,16 +5,14 @@ import com.lc.ibps.cloud.entity.APIResult;
 import com.lc.ibps.cloud.util.AESUtil;
 import com.netflix.zuul.ZuulFilter;
 import com.netflix.zuul.context.RequestContext;
+import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 处理请求参数filter
@@ -107,10 +105,15 @@ public class SignFilter extends ZuulFilter {
                         requestQueryParams = new HashMap<>();
                     }
                     List<String> arrayList = new ArrayList<>();
+                    Map<String, List<String>> qp = new HashMap<>();
                     String aes_decodedStr = AESUtil.decrypt(name);
-                    arrayList.add(aes_decodedStr + "");
-                    requestQueryParams.put("decodename", arrayList);
-                    ctx.setRequestQueryParams(requestQueryParams);
+                    JSONObject map = JSONObject.fromObject(aes_decodedStr);/*转换成map*/
+                    Map<String, List<String>> finalRequestQueryParams = requestQueryParams;
+                    map.forEach((k, v)->{
+                        finalRequestQueryParams.put(k.toString(), Arrays.asList(v.toString()));
+                    });
+
+                    ctx.setRequestQueryParams(finalRequestQueryParams);
                 }
             }// post和put需重写HttpServletRequestWrapper
             /*else if ("POST".equals(method) || "PUT".equals(method)) {