diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/ApiLoggingFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/ApiLoggingFilter.java index 11ba544..18d8ff7 100644 --- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/ApiLoggingFilter.java +++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/ApiLoggingFilter.java @@ -32,12 +32,10 @@ import java.util.List; @Component public class ApiLoggingFilter implements GlobalFilter, Ordered { - private static final String START_TIME = "startTime"; - @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { setTraceId(exchange); - exchange.getAttributes().put(START_TIME, System.currentTimeMillis()); + exchange.getAttributes().put(CommonConstants.START_TIME, System.currentTimeMillis()); return chain.filter(exchange.mutate().build()).then(Mono.fromRunnable(() -> { ServerHttpRequest request = exchange.getRequest(); if (log.isInfoEnabled()) { @@ -45,7 +43,7 @@ public class ApiLoggingFilter implements GlobalFilter, Ordered { exchange.getRequest().getMethod().name(), exchange.getRequest().getURI().getHost(), exchange.getRequest().getURI().getPath(), exchange.getRequest().getQueryParams()); String token = request.getHeaders().getFirst(CommonConstants.HEAD_TOKEN_KEY); - Long startTime = exchange.getAttribute(START_TIME); + Long startTime = exchange.getAttribute(CommonConstants.START_TIME); if (startTime != null) { Long executeTime = (System.currentTimeMillis() - startTime); String ip = IPUtils.clientIp(request); @@ -67,7 +65,6 @@ public class ApiLoggingFilter implements GlobalFilter, Ordered { private void setTraceId(ServerWebExchange exchange){ String traceId = exchange.getAttribute(CommonConstants.TRACE_ID); if (StringUtils.isEmpty(traceId)){ - log.info("traceId : {}", traceId); traceId = IdUtils.getId(32); exchange.getAttributes().put(CommonConstants.TRACE_ID, ServletUtils.urlEncode(traceId)); } diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java index 44c9cfe..b61e11f 100644 --- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java +++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java @@ -52,7 +52,6 @@ public class AuthFilter implements GlobalFilter, Ordered @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { - log.info("AuthFilter start"); ServerHttpRequest request = exchange.getRequest(); ServerHttpRequest.Builder mutate = request.mutate(); @@ -67,7 +66,6 @@ public class AuthFilter implements GlobalFilter, Ordered { return chain.filter(exchange); } - long start = System.currentTimeMillis(); String token = getToken(request, newPath); if (StringUtils.isEmpty(token)) { @@ -98,8 +96,6 @@ public class AuthFilter implements GlobalFilter, Ordered // 内部请求来源参数清除 removeHeader(mutate); - long end = System.currentTimeMillis(); - log.info("auth time {}", end - start); return chain.filter(exchange.mutate().request(mutate.build()).build()); } diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/TimestampHeaderFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/TimestampHeaderFilter.java new file mode 100644 index 0000000..187d234 --- /dev/null +++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/TimestampHeaderFilter.java @@ -0,0 +1,32 @@ +package com.chushang.gateway.filter; + +import com.chushang.common.core.constant.CommonConstants; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + * 计算请求时间 + */ +@Component +public class TimestampHeaderFilter implements GlobalFilter, Ordered { + + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + // 创建一个新的请求对象并替换原来的头信息 + ServerHttpRequest mutatedRequest = request.mutate().headers(headers -> headers.add(CommonConstants.START_TIME, System.currentTimeMillis() + "")).build(); + // 继续处理请求 + return chain.filter(exchange.mutate().request(mutatedRequest).build()); + } + + @Override + public int getOrder() { + // 设置过滤器的执行顺序,数值越小,优先级越高 + return -1; + } +}