From 604778b34a84b62208106d03f7c8dfaa28151024 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 25 七月 2023 16:36:06 +0800
Subject: [PATCH] WMTS代理服务,添加Rest风格代理

---
 src/main/java/com/moon/server/controller/sys/ProxyController.java |   17 ++++++++++++++++-
 src/main/java/com/moon/server/entity/all/SettingData.java         |    4 ++--
 src/main/java/com/moon/server/service/sys/ProxyService.java       |    2 +-
 src/main/java/com/moon/server/helper/HttpHelper.java              |    7 +++++--
 4 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/moon/server/controller/sys/ProxyController.java b/src/main/java/com/moon/server/controller/sys/ProxyController.java
index b75d2e3..e16b427 100644
--- a/src/main/java/com/moon/server/controller/sys/ProxyController.java
+++ b/src/main/java/com/moon/server/controller/sys/ProxyController.java
@@ -39,7 +39,22 @@
     @RequestMapping(value = {"/{token}/{id}/**"})
     public void proxyUrl(@NotNull @PathVariable String token, @NotNull @PathVariable int id, HttpServletRequest req, HttpServletResponse res) {
         try {
-            proxyService.proxyUrl(token, id, req, res);
+            proxyService.proxyUrl(token, id, false, req, res);
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+            WebHelper.writeStr2Page(res, ex.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "URL浠g悊", notes = "URL浠g悊")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "浠ょ墝", dataType = "String", paramType = "path", required = true, example = "1eb2ea8f-5cfd-4e6c-95c9-17ab0f7bce71"),
+            @ApiImplicitParam(name = "id", value = "ID", dataType = "int", paramType = "path", required = true, example = "1"),
+    })
+    @RequestMapping(value = {"/rest/{token}/{id}/**"})
+    public void proxyRestUrl(@NotNull @PathVariable String token, @NotNull @PathVariable int id, HttpServletRequest req, HttpServletResponse res) {
+        try {
+            proxyService.proxyUrl(token, id, true, req, res);
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
             WebHelper.writeStr2Page(res, ex.getMessage());
diff --git a/src/main/java/com/moon/server/entity/all/SettingData.java b/src/main/java/com/moon/server/entity/all/SettingData.java
index 2e03a73..330d916 100644
--- a/src/main/java/com/moon/server/entity/all/SettingData.java
+++ b/src/main/java/com/moon/server/entity/all/SettingData.java
@@ -48,10 +48,10 @@
     /**
      * 鐢ㄦ埛璁块棶閲�
      */
-    public static int MAX_USER_LOGIN;
+    public static int MAX_USER_LOGIN = 1000;
 
     /**
      * 鏈嶅姟涓婇檺
      */
-    public static int MAX_SERVERS;
+    public static int MAX_SERVERS = 100000;
 }
diff --git a/src/main/java/com/moon/server/helper/HttpHelper.java b/src/main/java/com/moon/server/helper/HttpHelper.java
index 1900668..dd45f13 100644
--- a/src/main/java/com/moon/server/helper/HttpHelper.java
+++ b/src/main/java/com/moon/server/helper/HttpHelper.java
@@ -320,9 +320,12 @@
             proxyUrl = request.getRequestURL().substring(0, request.getRequestURL().indexOf(proxyUrl) + proxyUrl.length());
             str = str.replace(strs[0], proxyUrl);
 
+            if (!StringHelper.isEmpty(strs[1])) {
+                str = str.replace("?" + strs[1], "").replace("&amp;" + strs[1], "");
+            }
+
             if (StaticData.THREE == res.getFirm() && str.contains(StaticData.REST_LAYER)) {
-
-
+                str = str.replace(strs[0].replace("/wmts/layer/", StaticData.REST_LAYER), proxyUrl.replace("/proxy/", "/proxy/rest/"));
             }
         }
 
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 62ad985..f5c0de2 100644
--- a/src/main/java/com/moon/server/service/sys/ProxyService.java
+++ b/src/main/java/com/moon/server/service/sys/ProxyService.java
@@ -47,7 +47,7 @@
     /**
      * URL浠g悊
      */
-    public void proxyUrl(String token, int resId, HttpServletRequest req, HttpServletResponse res) throws Exception {
+    public void proxyUrl(String token, int resId, boolean isRest, HttpServletRequest req, HttpServletResponse res) throws Exception {
         // 3.鑾峰彇鐢ㄦ埛
         UserEntity ue = getUser(req, res, token);
         if (null == ue) {

--
Gitblit v1.9.3