From 6cd222d13f03901362f9a4c36a204e1e0b93a6e4 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 08 九月 2022 00:31:22 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 java110-core/src/main/java/com/java110/core/base/controller/BaseController.java |   83 +++++++++++++++++++++++++----------------
 1 files changed, 51 insertions(+), 32 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java b/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
old mode 100644
new mode 100755
index ffed49e..c7abae0
--- a/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
+++ b/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
@@ -1,21 +1,21 @@
 package com.java110.core.base.controller;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.AppBase;
-import com.java110.core.cache.Java110RedisConfig;
 import com.java110.core.context.BusinessServiceDataFlow;
 import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
 import com.java110.core.factory.DataFlowFactory;
+import com.java110.dto.basePrivilege.BasePrivilegeDto;
+import com.java110.utils.cache.PrivilegeCache;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.exception.NoAuthorityException;
 import com.java110.utils.util.StringUtil;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.ui.Model;
 import org.springframework.web.client.RestTemplate;
@@ -29,6 +29,8 @@
  * Created by wuxw on 2017/2/23.
  */
 public class BaseController extends AppBase {
+
+
 
 
     /**
@@ -63,21 +65,22 @@
                 String[] value = (String[]) readOnlyMap.get(key);
 //                String[] value = (String[]) readOnlyMap.get(key);
                 if (value.length > 1) {
-                    headers.put(key, value[0]);
                     for (int j = 0; j < value.length; j++) {
                         queryString.append(key);
                         queryString.append("=");
                         queryString.append(value[j]);
                         queryString.append("&");
                     }
-
                 } else {
-                    headers.put(key, value[0]);
                     queryString.append(key);
                     queryString.append("=");
                     queryString.append(value[0]);
                     queryString.append("&");
                 }
+                if(!hasValidHeader(key.toLowerCase())){
+                    continue;
+                }
+                headers.put(key, value[0]);
             }
         }
 
@@ -89,6 +92,30 @@
         }
 
     }
+
+    private boolean hasValidHeader(String key) {
+        if("app-id".equals(key) || "app_id".equals(key)){
+            return true;
+        }
+        if("transaction-id".equals(key) || "transaction_id".equals(key)){
+            return true;
+        }
+        if("req-time".equals(key) || "req_time".equals(key)){
+            return true;
+        }
+        if("sign".equals(key)){
+            return true;
+        }
+        if("user-id".equals(key) || "user_id".equals(key)){
+            return true;
+        }
+        if("java110-lang".equals(key)){
+            return true;
+        }
+
+        return false;
+    }
+
 
     public static Map<String, String> getParameterStringMap(HttpServletRequest request) {
         Map<String, String[]> properties = request.getParameterMap();//鎶婅姹傚弬鏁板皝瑁呭埌Map<String, String[]>涓�
@@ -114,6 +141,19 @@
         return returnMap;
     }
 
+    // 鑾峰彇HttpServletRequest閲岄潰鐨勫弬鏁�
+    public static Map<String, String> getRequestParams(HttpServletRequest request) {
+        Map<String, String[]> params = request.getParameterMap();
+        Map<String, String> params2 = new HashMap<>();
+        for (String key : params.keySet()) {
+            String[] values = params.get(key);
+            if (values.length > 0) {
+                params2.put(key, request.getParameter(key));
+            }
+        }
+        return params2;
+    }
+
     protected void initHeadParam(HttpServletRequest request, Map headers) {
 
         Enumeration reqHeaderEnum = request.getHeaderNames();
@@ -125,7 +165,8 @@
 
         headers.put("IP", getIpAddr(request));
 
-        headers.put("hostName", request.getLocalName());
+        //headers.put("hostName", request.getLocalName()); 杩欓噷瀵艰嚧閮ㄥ垎涓绘満 閫熷害姣旇緝鎱�
+        headers.put("hostName", "localhost");
         headers.put("port", request.getLocalPort() + "");
 
         //澶勭悊app-id
@@ -144,7 +185,7 @@
         }
 
         //澶勭悊req-time
-        if (headers.containsKey("user-id")) {
+        if (headers.containsKey("user-id") && !"-1".equals(headers.get("user-id"))) {
             headers.put("user_id", headers.get("user-id"));
         }
 
@@ -275,29 +316,7 @@
         return businessServiceDataFlow;
     }
 
-    protected void hasPrivilege(RestTemplate restTemplate, IPageData pd, String resource) {
-        ResponseEntity<String> responseEntity = null;
-        //娌℃湁鐢ㄦ埛鐨勬儏鍐典笅涓嶅仛鏉冮檺鍒ゆ柇
-        if (StringUtil.isEmpty(pd.getUserId())) {
-            return;
-        }
-        JSONObject paramIn = new JSONObject();
-        paramIn.put("resource", resource);
-        paramIn.put("userId", pd.getUserId());
 
-        responseEntity = checkUserHasResourceListener(restTemplate, pd, paramIn, resource + pd.getUserId());
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
-            throw new UnsupportedOperationException("鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔");
-        }
-    }
 
-    @Cacheable(value = "checkUserHasResourceListener" + Java110RedisConfig.DEFAULT_EXPIRE_TIME_KEY, key = "#cacheKey")
-    private ResponseEntity<String> checkUserHasResourceListener(RestTemplate restTemplate, IPageData pd, JSONObject paramIn, String cacheKey) {
-        ResponseEntity<String> responseEntity = null;
-        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
-                ServiceConstant.SERVICE_API_URL + "/api/basePrivilege.CheckUserHasResourceListener",
-                HttpMethod.POST);
-        return responseEntity;
-    }
 
 }

--
Gitblit v1.8.0