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