From aa4429a11d9b73bbcb1628090b6bafb75c4c6a00 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 27 九月 2023 14:51:07 +0800
Subject: [PATCH] 修改代理服务-2

---
 src/main/java/com/moon/server/service/sys/ProxyService.java |   44 ++++++++++++++++++++++++--------------------
 1 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/moon/server/service/sys/ProxyService.java b/src/main/java/com/moon/server/service/sys/ProxyService.java
index 7b96232..4b14343 100644
--- a/src/main/java/com/moon/server/service/sys/ProxyService.java
+++ b/src/main/java/com/moon/server/service/sys/ProxyService.java
@@ -4,7 +4,6 @@
 import com.moon.server.entity.all.*;
 import com.moon.server.entity.sys.ResEntity;
 import com.moon.server.entity.sys.ResLogEntity;
-import com.moon.server.entity.sys.TokenEntity;
 import com.moon.server.entity.sys.UserEntity;
 import com.moon.server.helper.AsyncHelper;
 import com.moon.server.helper.HttpHelper;
@@ -61,7 +60,7 @@
         }
         insertLog(req, ue, resId);
 
-        String url = getUrl(req, entity, token, isRest);
+        String url = getUrl(req, ue, entity, token, isRest);
         res.setHeader("token", token);
         forward(req, res, entity, url);
     }
@@ -107,10 +106,9 @@
         if (StaticData.ADMIN.equals(ue.getUid())) {
             return true;
         }
-        // 7.妫�鏌ョ櫧鍚嶅崟
+        // 7.妫�鏌ョ櫧鍚嶅崟鍜孖P涓�鑷存��
         if (!checkWhiteList(ip, req)) {
-            // 妫�鏌P涓�鑷存��
-            if (!checkIpSource(ip, token)) {
+            if (!ip.equals(sysService.tokenService.getEntityByToken(token).getIp())) {
                 return WebHelper.writeStr2Page(res, AuthInterceptor.ILLEGAL_TOKEN);
             }
         }
@@ -147,15 +145,6 @@
     }
 
     /**
-     * 妫�鏌P涓�鑷存��
-     */
-    private boolean checkIpSource(String ip, String token) {
-        TokenEntity te = sysService.tokenService.getEntityByToken(token);
-
-        return te.getIp().equals(ip);
-    }
-
-    /**
      * 妫�鏌ヨ祫婧愭潈闄�
      */
     private ResEntity getResEntity(UserEntity ue, int resId) {
@@ -163,7 +152,6 @@
         if (null == rs || rs.isEmpty()) {
             return null;
         }
-
         // List<ResEntity> list = rs.stream().filter(resEntity -> resEntity.getId() == resId).collect(Collectors.toList())
         for (ResEntity entity : rs) {
             if (resId == entity.getId()) {
@@ -226,18 +214,18 @@
     /**
      * 鑾峰彇Url
      */
-    private String getUrl(HttpServletRequest req, ResEntity entity, String token, boolean isRest) {
+    private String getUrl(HttpServletRequest req, UserEntity ue, ResEntity entity, String token, boolean isRest) {
         String proxyUrl = entity.getProxy().replace("{token}", token);
         int end = req.getRequestURL().indexOf(proxyUrl) + proxyUrl.length();
 
         String url = entity.getUrl() + req.getRequestURL().substring(end);
-        if (null != req.getQueryString()) {
-            url = url + (url.contains("?") ? "&" : "?") + req.getQueryString();
-        }
         // category锛�0-鍏朵粬锛�1-GisServer锛�2-GeoServer锛�3-鏁扮畝
         if (StaticData.I2 == entity.getCategory()) {
-            //
+            url = getGeoServerUrl(req, ue, entity, url);
         } else if (StaticData.I3 == entity.getCategory()) {
+            if (null != req.getQueryString()) {
+                url = url + (url.contains("?") ? "&" : "?") + req.getQueryString();
+            }
             if (isRest) {
                 url = url.replace("/v6/wmts/", "/v6/rest/");
             }
@@ -250,6 +238,22 @@
     }
 
     /**
+     * 鑾峰彇GeoServer鍦板潃
+     */
+    private String getGeoServerUrl(HttpServletRequest req, UserEntity ue, ResEntity entity, String url) {
+        if (null == req.getQueryString()) {
+            return url;
+        }
+
+        String str = req.getQueryString();
+        if (!StaticData.GET_CAPABILITIES.equals(req.getParameter(StaticData.REQUEST))) {
+            //
+        }
+
+        return url + (url.contains("?") ? "&" : "?") + str;
+    }
+
+    /**
      * 杞彂璇锋眰
      */
     private void forward(HttpServletRequest request, HttpServletResponse response, ResEntity entity, String url) throws Exception {

--
Gitblit v1.9.3