From 47c768666e950293176d805a18081a63341ea2fd Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 8 Apr 2025 14:16:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E9=93=BE=E6=8E=A5=E5=85=BC=E5=AE=B9=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=9A=84=E9=83=A8=E5=88=86=20api=20=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/share/interceptor/LinkInterceptor.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java b/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java index 3c9cab9ea5..8e72a8c014 100644 --- a/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java +++ b/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java @@ -21,6 +21,12 @@ public class LinkInterceptor implements HandlerInterceptor { private final static String whiteListText = "/user/ipInfo, /apisix/check, /datasetData/enumValue, /datasetData/enumValueObj, /datasetData/getFieldTree, /dekey, /symmetricKey, /share/validate, /sysParameter/queryOnlineMap, /xpackComponent/viewPlugins"; + private final static String whiteStartListText = "/dataVisualization/findDvType/"; + + private boolean isWhiteStart(String url) { + List whiteStartList = Arrays.stream(StringUtils.split(whiteStartListText, ",")).map(String::trim).toList(); + return whiteStartList.stream().anyMatch(item -> StringUtils.startsWith(url, item)); + } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -33,6 +39,7 @@ public class LinkInterceptor implements HandlerInterceptor { if (deLinkPermit == null) { List whiteList = Arrays.stream(StringUtils.split(whiteListText, ",")).map(String::trim).toList(); + String requestURI = ServletUtils.request().getRequestURI(); if (StringUtils.startsWith(requestURI, WhitelistUtils.getContextPath())) { requestURI = requestURI.replaceFirst(WhitelistUtils.getContextPath(), ""); @@ -40,7 +47,7 @@ public class LinkInterceptor implements HandlerInterceptor { if (StringUtils.startsWith(requestURI, AuthConstant.DE_API_PREFIX)) { requestURI = requestURI.replaceFirst(AuthConstant.DE_API_PREFIX, ""); } - boolean valid = whiteList.contains(requestURI) || WhitelistUtils.match(requestURI); + boolean valid = whiteList.contains(requestURI) || isWhiteStart(requestURI) || WhitelistUtils.match(requestURI); if (!valid) { DEException.throwException("分享链接Token不支持访问当前url[" + requestURI + "]"); }