diff --git a/build.gradle b/build.gradle index 3efd517..4dce5c6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS group = "me.bvn13.jateway" -version = "1.0.0" +version = "1.0.1" buildscript { ext { diff --git a/config/application-dev.yaml b/config/application-dev.yaml index 1bd47c5..fabad00 100644 --- a/config/application-dev.yaml +++ b/config/application-dev.yaml @@ -6,10 +6,10 @@ spring: cloud: gateway: routes: - - id: simple_route - uri: http://example.com - predicates: - - Method=GET + - id: another_simple_route + uri: http://example.com + predicates: + - Method=GET management: server: diff --git a/docker-compose.yaml b/docker-compose.yaml index bbde1b2..3e815eb 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -9,7 +9,7 @@ services: ports: - 8080:8080 environment: - - SPRING_PROFILES_ACTIVE=default,example + - SPRING_PROFILES_ACTIVE=default,example,bad - SPRING_CONFIG_ADDITIONAL_LOCATION=/app/config/ volumes: - ./config:/app/config diff --git a/service/src/main/java/me/bvn13/jateway/logging/LoggingFilter.java b/service/src/main/java/me/bvn13/jateway/logging/LoggingFilter.java index 6b82915..9bccb2c 100644 --- a/service/src/main/java/me/bvn13/jateway/logging/LoggingFilter.java +++ b/service/src/main/java/me/bvn13/jateway/logging/LoggingFilter.java @@ -23,11 +23,14 @@ public class LoggingFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); - ServerHttpResponse response = exchange.getResponse(); URI originalUri = request.getURI(); 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); + Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR); + ServerHttpResponse response = exchange.getResponse(); String statusCode = String.valueOf(response.getStatusCode().value()); String responseHeaders = response.getHeaders().toString(); String msg = "" + route.getId() + " | " + statusCode + " | " + originalUri + " -> " + uri + " | request headers: " + requestHeaders + ", response headers: " + responseHeaders; @@ -36,11 +39,11 @@ public class LoggingFilter implements GlobalFilter, Ordered { } else { log.info(msg); } - return chain.filter(exchange); + return result; } @Override public int getOrder() { - return Ordered.LOWEST_PRECEDENCE; + return Ordered.HIGHEST_PRECEDENCE; } } diff --git a/service/src/main/resources/application-bad.yaml b/service/src/main/resources/application-bad.yaml new file mode 100644 index 0000000..cc418ca --- /dev/null +++ b/service/src/main/resources/application-bad.yaml @@ -0,0 +1,9 @@ +spring: + cloud: + gateway: + routes: + - id: simple_bad_route + uri: http://localhost:5959 + predicates: + - Method=GET + - Path=/bad/{segment} diff --git a/service/src/main/resources/application-example.yaml b/service/src/main/resources/application-example.yaml index 0fd9b7e..9e5b63c 100644 --- a/service/src/main/resources/application-example.yaml +++ b/service/src/main/resources/application-example.yaml @@ -2,7 +2,13 @@ spring: cloud: gateway: routes: - - id: simple_route - uri: http://example.com - predicates: - - Method=GET + - id: simple_route + uri: http://example.com + predicates: + - Method=GET + - Path=/good/{segment} + - id: simple_bad_route + uri: http://localhost:-1 + predicates: + - Method=GET + - Path=/bad/{segment}