From 80d68bf4829fb0179287c02303398258afa1a932 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 19 Feb 2024 14:29:31 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E5=A2=9E=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RequestHeaderContextInterceptor.java | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java index 3412d83fb..346494456 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java @@ -1,18 +1,24 @@ package cn.axzo.workflow.server.common.interceptor; +import cn.axzo.workflow.core.common.exception.WorkflowEngineException; import cn.axzo.workflow.core.repository.entity.ExtAxProperty; import cn.axzo.workflow.core.service.ExtAxPropertyService; import lombok.extern.slf4j.Slf4j; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Objects; +import static cn.axzo.workflow.client.config.FeignRequestInterceptor.HEADER_API_VERSION; +import static cn.axzo.workflow.client.config.FeignRequestInterceptor.HEADER_HTTP_CLIENT; +import static cn.axzo.workflow.client.config.FeignRequestInterceptor.HEADER_HTTP_CLIENT_VALUE; import static cn.axzo.workflow.client.config.FeignRequestInterceptor.HEADER_SERVER_NAME; +import static cn.axzo.workflow.core.common.code.OtherRespCode.CLIENT_VERSION_SUPPORT; /** * 客户端与服务端的版本比较 @@ -30,24 +36,26 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - log.info("request uri : {}", request.getRequestURI()); - // if (Objects.equals(HEADER_HTTP_CLIENT_VALUE, request.getHeader(HEADER_HTTP_CLIENT))) { - // String headerClientVersion = request.getHeader(HEADER_API_VERSION); - // DefaultArtifactVersion clientVersion = new DefaultArtifactVersion(headerClientVersion); - // DefaultArtifactVersion serverVersion = new DefaultArtifactVersion(serviceVersion); - // if (clientVersion.compareTo(serverVersion) >= 0) { - // - // recordClientInfo(request, headerClientVersion, clientVersion); - // - // return true; - // } else { - // throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion); - // } - // } - // if (!request.getRequestURI().contains("/web/") && !request.getRequestURI().contains("checkDeath") - // && !StringUtils.hasText(request.getHeader(HEADER_HTTP_CLIENT))) { - // throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion); - // } + if (Objects.equals(HEADER_HTTP_CLIENT_VALUE, request.getHeader(HEADER_HTTP_CLIENT))) { + String headerClientVersion = request.getHeader(HEADER_API_VERSION); + DefaultArtifactVersion clientVersion = new DefaultArtifactVersion(headerClientVersion); + DefaultArtifactVersion serverVersion = new DefaultArtifactVersion(serviceVersion); + if (clientVersion.compareTo(serverVersion) >= 0) { + + recordClientInfo(request, headerClientVersion, clientVersion); + + return true; + } else { + log.info("request uri : {}", request.getRequestURI()); + throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion); + } + } + // 仅 feignApi 才需要检查版本 + if (!request.getRequestURI().contains("/web/") && !request.getRequestURI().contains("checkDeath") + && !StringUtils.hasText(request.getHeader(HEADER_HTTP_CLIENT))) { + log.info("request uri : {}", request.getRequestURI()); + throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion); + } return true; }