update - 调整服务启动时, 获取版本号异常的问题

This commit is contained in:
wangli 2024-02-18 17:33:26 +08:00
parent 3e043a14df
commit 718c0cc62d

View File

@ -1,22 +1,17 @@
package cn.axzo.workflow.server.common.interceptor; 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.repository.entity.ExtAxProperty;
import cn.axzo.workflow.core.service.ExtAxPropertyService; import cn.axzo.workflow.core.service.ExtAxPropertyService;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Objects; 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.client.config.FeignRequestInterceptor.HEADER_SERVER_NAME;
import static cn.axzo.workflow.core.common.code.OtherRespCode.CLIENT_VERSION_SUPPORT;
/** /**
* 客户端与服务端的版本比较 * 客户端与服务端的版本比较
@ -24,7 +19,7 @@ import static cn.axzo.workflow.core.common.code.OtherRespCode.CLIENT_VERSION_SUP
* @author wangli * @author wangli
* @since 2024/2/4 15:48 * @since 2024/2/4 15:48
*/ */
//@Component @Component
public class RequestHeaderContextInterceptor implements HandlerInterceptor { public class RequestHeaderContextInterceptor implements HandlerInterceptor {
@Autowired @Autowired
private String serviceVersion; private String serviceVersion;
@ -33,22 +28,23 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (Objects.equals(HEADER_HTTP_CLIENT_VALUE, request.getHeader(HEADER_HTTP_CLIENT))) { // if (Objects.equals(HEADER_HTTP_CLIENT_VALUE, request.getHeader(HEADER_HTTP_CLIENT))) {
String headerClientVersion = request.getHeader(HEADER_API_VERSION); // String headerClientVersion = request.getHeader(HEADER_API_VERSION);
DefaultArtifactVersion clientVersion = new DefaultArtifactVersion(headerClientVersion); // DefaultArtifactVersion clientVersion = new DefaultArtifactVersion(headerClientVersion);
DefaultArtifactVersion serverVersion = new DefaultArtifactVersion(serviceVersion); // DefaultArtifactVersion serverVersion = new DefaultArtifactVersion(serviceVersion);
if (clientVersion.compareTo(serverVersion) >= 0) { // if (clientVersion.compareTo(serverVersion) >= 0) {
//
recordClientInfo(request, headerClientVersion, clientVersion); // recordClientInfo(request, headerClientVersion, clientVersion);
//
return true; // return true;
} else { // } else {
throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion); // throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion);
} // }
} // }
if (!request.getRequestURI().contains("/web/") && !request.getRequestURI().contains("checkDeath") && !StringUtils.hasText(request.getHeader(HEADER_HTTP_CLIENT))) { // if (!request.getRequestURI().contains("/web/") && !request.getRequestURI().contains("checkDeath")
throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion); // && !StringUtils.hasText(request.getHeader(HEADER_HTTP_CLIENT))) {
} // throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion);
// }
return true; return true;
} }