From 5da1994ffa1629f278d01183a66c7405135adfa6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 28 九月 2023 16:23:09 +0800
Subject: [PATCH] 兼容QGIS的GetCapabilities

---
 src/main/java/com/moon/server/entity/all/StaticData.java    |    4 ++++
 src/main/java/com/moon/server/service/sys/ProxyService.java |    7 +++++--
 src/main/java/com/moon/server/helper/HttpHelper.java        |    2 --
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/moon/server/entity/all/StaticData.java b/src/main/java/com/moon/server/entity/all/StaticData.java
index 8da63e7..f7b058b 100644
--- a/src/main/java/com/moon/server/entity/all/StaticData.java
+++ b/src/main/java/com/moon/server/entity/all/StaticData.java
@@ -182,8 +182,12 @@
 
     public final static String DOM = "DOM";
 
+    public final static String LAYERS = "layers";
+
     public final static String REQUEST = "request";
 
+    public final static String SERVICE = "service";
+
     public final static String GET_CAPABILITIES = "GetCapabilities";
 
     public final static String SUCCESS = "$SUCCESS";
diff --git a/src/main/java/com/moon/server/helper/HttpHelper.java b/src/main/java/com/moon/server/helper/HttpHelper.java
index d6f7b43..001a069 100644
--- a/src/main/java/com/moon/server/helper/HttpHelper.java
+++ b/src/main/java/com/moon/server/helper/HttpHelper.java
@@ -158,7 +158,6 @@
 
     protected String getRealCookie(String cookieValue) {
         StringBuilder escapedCookie = new StringBuilder();
-
         String[] cookies = cookieValue.split("[;,]");
         for (String cookie : cookies) {
             String[] cookieSplit = cookie.split("=");
@@ -303,7 +302,6 @@
 
             String name = ":" + str.substring(start, str.indexOf("</Name>", start));
             if (!res.getTab().contains(name)) {
-                // index = str.lastIndexOf(">", index)
                 end = str.indexOf("<", end);
                 str = str.substring(0, index) + str.substring(end);
                 index = str.indexOf(StaticData.QUERYABLE, index);
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 029c420..3c75c64 100644
--- a/src/main/java/com/moon/server/service/sys/ProxyService.java
+++ b/src/main/java/com/moon/server/service/sys/ProxyService.java
@@ -245,8 +245,11 @@
             return url;
         }
 
-        String str = req.getQueryString(), layers = req.getParameter("layers");
-        if (!StaticData.GET_CAPABILITIES.equals(req.getParameter(StaticData.REQUEST)) && null != layers) {
+        String str = req.getQueryString();
+        boolean isLower = str.contains(StaticData.SERVICE);
+        String layers = req.getParameter(isLower ? StaticData.LAYERS : StaticData.LAYERS.toUpperCase());
+        String request = req.getParameter(isLower ? StaticData.REQUEST : StaticData.REQUEST.toUpperCase());
+        if (!StaticData.GET_CAPABILITIES.equals(request) && null != layers) {
             int start = str.indexOf("layers");
             int end = str.indexOf("&", start);
             layers = filterGeoLayers(ue, layers);

--
Gitblit v1.9.3