From 4c8be09a7218b80d2676d19aedf397063ed5c6bd Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Fri, 7 Mar 2025 14:00:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=B2=BB?= =?UTF-8?q?=E7=90=86=E5=B7=A5=E5=85=B7):=20=E4=BC=98=E5=8C=96portainer?= =?UTF-8?q?=E8=BD=AC=E5=8F=91=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复拦截portainer中URL中携带endpoints的请求时,未考虑endpoints在末尾的情况 Signed-off-by: OTTO <731554297@qq.com> --- .../microservices/gateway/filter/GlobalResponseFilter.java | 2 +- .../gateway/service/impl/ThirdPartyToolServiceImpl.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/microservices-gateway/src/main/java/com/microservices/gateway/filter/GlobalResponseFilter.java b/microservices-gateway/src/main/java/com/microservices/gateway/filter/GlobalResponseFilter.java index 30c5a7905..2baa6963a 100644 --- a/microservices-gateway/src/main/java/com/microservices/gateway/filter/GlobalResponseFilter.java +++ b/microservices-gateway/src/main/java/com/microservices/gateway/filter/GlobalResponseFilter.java @@ -132,8 +132,8 @@ public class GlobalResponseFilter implements GlobalFilter, Ordered { JSONObject resJson = JSONObject.parseObject(resStr); if (resJson.containsKey("message")) { String message = resJson.getString("message"); - log.error("Portainer鉴权异常,已清理redis中Portainer token"); if (StringUtils.isNotBlank(message) && message.contains("A valid authorisation token is missing")) { + log.error("Portainer鉴权异常,已清理redis中Portainer token"); //token失效清除redis缓存 redisService.deleteObject(CacheConstants.PORTAINER_TOKEN); bytes = JSON.toJSONBytes(AjaxResult.error(ExceptionMsgConstants.RETRY_ERROR)); diff --git a/microservices-gateway/src/main/java/com/microservices/gateway/service/impl/ThirdPartyToolServiceImpl.java b/microservices-gateway/src/main/java/com/microservices/gateway/service/impl/ThirdPartyToolServiceImpl.java index fcee50528..bb60f28ba 100644 --- a/microservices-gateway/src/main/java/com/microservices/gateway/service/impl/ThirdPartyToolServiceImpl.java +++ b/microservices-gateway/src/main/java/com/microservices/gateway/service/impl/ThirdPartyToolServiceImpl.java @@ -150,10 +150,10 @@ public class ThirdPartyToolServiceImpl implements ThirdPartyToolService { if (lowerUrl.startsWith("/portainer")) { // 处理portainer指定endpoints的问题 if (lowerUrl.startsWith("/portainer/api/endpoints/")) { - String regex = "^/portainer/api/endpoints/\\d+/.*$"; + String regex = "^/portainer/api/endpoints/\\d+(/?.*)"; if (Pattern.matches(regex, lowerUrl)) { // 替换掉endpoints - regex = "(^/portainer/api/endpoints/)(\\d+)(/.*$)"; + regex = "(^/portainer/api/endpoints/)(\\d+)(/?.*)"; Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(url); if (matcher.find()) {