fix:gateway ready
This commit is contained in:
parent
64092f405f
commit
6dfa45b549
@ -36,7 +36,6 @@ public class CorsResponseHeaderFilter implements GlobalFilter, Ordered {
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("serial")
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
||||
return chain.filter(exchange).then(Mono.fromRunnable(() -> {
|
||||
exchange.getResponse().getHeaders().entrySet().stream()
|
||||
|
@ -1,74 +0,0 @@
|
||||
package com.ensign.ensigngateway.conf;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
||||
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.http.server.reactive.ServerHttpResponse;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Description: TODO
|
||||
* @Date: 2024/10/30 9:34
|
||||
* @Created: by ZZSLL
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class GlobalResponseLogFilter implements GlobalFilter, Ordered {
|
||||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
// 打印请求路径
|
||||
String path = request.getPath().pathWithinApplication().value();
|
||||
return chain.filter(exchange).then(
|
||||
Mono.fromRunnable(() -> {
|
||||
MultiValueMap<String, String> queryParams = request.getQueryParams();
|
||||
String requestUrl = UriComponentsBuilder.fromPath(path).queryParams(queryParams).build().toUriString();
|
||||
|
||||
// 构建成一条长日志
|
||||
StringBuilder responseLog = new StringBuilder(200);
|
||||
// 日志参数
|
||||
List<Object> responseArgs = new ArrayList<>();
|
||||
responseLog.append("\n\n================ Gateway Response Start ================\n");
|
||||
ServerHttpResponse response = exchange.getResponse();
|
||||
// 状态码个path占位符: 200 get: /xxx/xxx/xxx?a=b
|
||||
responseLog.append("<=== {} {}: {}\n");
|
||||
// 参数
|
||||
String requestMethod = request.getMethod().toString();
|
||||
responseArgs.add(Objects.requireNonNull(response.getStatusCode()).value());
|
||||
responseArgs.add(requestMethod);
|
||||
responseArgs.add(requestUrl);
|
||||
|
||||
// 打印请求头
|
||||
HttpHeaders headers = response.getHeaders();
|
||||
headers.forEach((headerName, headerValue) -> {
|
||||
responseLog.append("===Headers=== {}: {}\n");
|
||||
responseArgs.add(headerName);
|
||||
responseArgs.add(String.join(StringUtils.join(headerValue.toArray())));
|
||||
});
|
||||
|
||||
responseLog.append("================ Gateway Response End =================\n");
|
||||
// 打印执行时间
|
||||
log.info(responseLog.toString(), responseArgs.toArray());
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return Ordered.HIGHEST_PRECEDENCE;
|
||||
}
|
||||
}
|
@ -1,76 +0,0 @@
|
||||
package com.ensign.ensigngateway.conf;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
||||
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
||||
import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: TODO
|
||||
* @Date: 2024/10/30 9:32
|
||||
* @Created: by ZZSLL
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class RequestLogFilter implements GlobalFilter, Ordered {
|
||||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
// 打印请求路径
|
||||
String path = request.getPath().pathWithinApplication().value();
|
||||
// 打印请求url
|
||||
String requestUrl = this.getOriginalRequestUrl(exchange);
|
||||
|
||||
// **构建成一条长 日志,避免并发下日志错乱**
|
||||
StringBuilder reqLog = new StringBuilder(200);
|
||||
// 日志参数
|
||||
List<Object> reqArgs = new ArrayList<>();
|
||||
reqLog.append("\n\n================ Gateway Request Start ================\n");
|
||||
// 打印路由添加占位符
|
||||
reqLog.append("===> {}: {}\n");
|
||||
// 参数
|
||||
String requestMethod = request.getMethod().name();
|
||||
reqArgs.add(requestMethod);
|
||||
reqArgs.add(requestUrl);
|
||||
|
||||
// 打印请求头
|
||||
HttpHeaders headers = request.getHeaders();
|
||||
headers.forEach((headerName, headerValue) -> {
|
||||
reqLog.append("===Headers=== {}: {}\n");
|
||||
reqArgs.add(headerName);
|
||||
});
|
||||
|
||||
reqLog.append("================ Gateway Request End =================\n");
|
||||
// 打印执行时间
|
||||
log.info(reqLog.toString(), reqArgs.toArray());
|
||||
return chain.filter(exchange);
|
||||
}
|
||||
|
||||
private String getOriginalRequestUrl(ServerWebExchange exchange) {
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
LinkedHashSet<URI> uris = exchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
|
||||
URI requestUri = uris.stream().findFirst().orElse(request.getURI());
|
||||
MultiValueMap<String, String> queryParams = request.getQueryParams();
|
||||
return UriComponentsBuilder.fromPath(requestUri.getRawPath()).queryParams(queryParams).build().toUriString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return Ordered.LOWEST_PRECEDENCE;
|
||||
}
|
||||
}
|
@ -4,8 +4,6 @@ spring:
|
||||
|
||||
cloud:
|
||||
gateway:
|
||||
# globalcors:
|
||||
# add-to-simple-url-handler-mapping: true
|
||||
|
||||
routes:
|
||||
- id: proxy_route
|
||||
@ -19,15 +17,13 @@ spring:
|
||||
uri: http://127.0.0.1:38080
|
||||
predicates:
|
||||
- Path=/admin-api/**
|
||||
filters:
|
||||
- RewritePath=/admin-api/(?<segment>.*), /${segment}
|
||||
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 20MB
|
||||
max-request-size: 20MB
|
||||
server:
|
||||
port: 38080
|
||||
port: 48080
|
||||
|
||||
kingdee:
|
||||
test-public-end-point: 'http://122.4.221.133:8022'
|
||||
@ -35,3 +31,12 @@ kingdee:
|
||||
prod-public-end-point: 'http://122.4.221.130:8022'
|
||||
prod-inner-end-point: 'http://10.64.111.134:8022'
|
||||
local: 'http://127.0.0.1:38080'
|
||||
|
||||
logging:
|
||||
level:
|
||||
reactor:
|
||||
netty:
|
||||
http:
|
||||
server:
|
||||
logging:
|
||||
AccessLog: INFO
|
@ -1,5 +1,5 @@
|
||||
server:
|
||||
port: 48080
|
||||
port: 38080
|
||||
|
||||
--- #################### 数据库相关配置 ####################
|
||||
spring:
|
||||
|
Loading…
Reference in New Issue
Block a user