This commit is contained in:
bvn13 2025-02-28 09:40:13 +03:00
parent e159c63a12
commit 245196c921
6 changed files with 32 additions and 14 deletions

@ -1,7 +1,7 @@
gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS
group = "me.bvn13.jateway" group = "me.bvn13.jateway"
version = "1.0.0" version = "1.0.1"
buildscript { buildscript {
ext { ext {

@ -6,10 +6,10 @@ spring:
cloud: cloud:
gateway: gateway:
routes: routes:
- id: simple_route - id: another_simple_route
uri: http://example.com uri: http://example.com
predicates: predicates:
- Method=GET - Method=GET
management: management:
server: server:

@ -9,7 +9,7 @@ services:
ports: ports:
- 8080:8080 - 8080:8080
environment: environment:
- SPRING_PROFILES_ACTIVE=default,example - SPRING_PROFILES_ACTIVE=default,example,bad
- SPRING_CONFIG_ADDITIONAL_LOCATION=/app/config/ - SPRING_CONFIG_ADDITIONAL_LOCATION=/app/config/
volumes: volumes:
- ./config:/app/config - ./config:/app/config

@ -23,11 +23,14 @@ public class LoggingFilter implements GlobalFilter, Ordered {
@Override @Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest(); ServerHttpRequest request = exchange.getRequest();
ServerHttpResponse response = exchange.getResponse();
URI originalUri = request.getURI(); URI originalUri = request.getURI();
String requestHeaders = request.getHeaders().toString(); String requestHeaders = request.getHeaders().toString();
Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR);
Mono<Void> result = chain.filter(exchange);
URI uri = exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR); URI uri = exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR);
Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR);
ServerHttpResponse response = exchange.getResponse();
String statusCode = String.valueOf(response.getStatusCode().value()); String statusCode = String.valueOf(response.getStatusCode().value());
String responseHeaders = response.getHeaders().toString(); String responseHeaders = response.getHeaders().toString();
String msg = "" + route.getId() + " | " + statusCode + " | " + originalUri + " -> " + uri + " | request headers: " + requestHeaders + ", response headers: " + responseHeaders; String msg = "" + route.getId() + " | " + statusCode + " | " + originalUri + " -> " + uri + " | request headers: " + requestHeaders + ", response headers: " + responseHeaders;
@ -36,11 +39,11 @@ public class LoggingFilter implements GlobalFilter, Ordered {
} else { } else {
log.info(msg); log.info(msg);
} }
return chain.filter(exchange); return result;
} }
@Override @Override
public int getOrder() { public int getOrder() {
return Ordered.LOWEST_PRECEDENCE; return Ordered.HIGHEST_PRECEDENCE;
} }
} }

@ -0,0 +1,9 @@
spring:
cloud:
gateway:
routes:
- id: simple_bad_route
uri: http://localhost:5959
predicates:
- Method=GET
- Path=/bad/{segment}

@ -2,7 +2,13 @@ spring:
cloud: cloud:
gateway: gateway:
routes: routes:
- id: simple_route - id: simple_route
uri: http://example.com uri: http://example.com
predicates: predicates:
- Method=GET - Method=GET
- Path=/good/{segment}
- id: simple_bad_route
uri: http://localhost:-1
predicates:
- Method=GET
- Path=/bad/{segment}