Cloud Native 7 min read

Building a Simple Logging Route Service with Spring Cloud Gateway

This article walks through creating a Spring Cloud Gateway‑based route service that logs incoming requests, demonstrates how to configure custom route predicates, add a logging filter, forward requests to a target URL, and finally deploy the service using Gradle.

High Availability Architecture
High Availability Architecture
High Availability Architecture
Building a Simple Logging Route Service with Spring Cloud Gateway

Spring Cloud Gateway, built on Spring Boot 2, provides a lightweight API gateway for Java developers working in Cloud Foundry environments. It enables routing, logging, rate‑limiting, and authentication without requiring changes to the downstream services.

Route Service Overview

A route service intercepts all HTTP traffic to an application, adds headers, signs requests, and can modify the destination URL or return error responses. It is useful for logging, throttling, and authentication while keeping the application unaware of these concerns.

Simple Logging Service

The tutorial creates a minimal route service that records request details in the logs and forwards the request to a target address, following the example in the official route‑service documentation.

Project Setup

A new Spring project is generated using Spring Boot 2.x with the Gateway and Reactive Web starters. The example uses Gradle, but Maven can be used as well.

Configuring Route Predicates

Three custom headers are defined to identify a route‑service request:

X‑CF‑Forwarded‑Url – the target URL

X‑CF‑Proxy‑Signature – a token for request verification

X‑CF‑Proxy‑Metadata – auxiliary data for signature validation

If all three predicates match, the request is forwarded to http://google.com:80 (used only for demonstration). The service is started with ./gradlew bootRun and verified with an HTTP client.

Logging Filter

A custom filter is added to capture request information. After processing, the filter calls chain.filter(exchange) to pass control to the next filter in the chain or release the request if it is the last filter.

Forwarding to the Target URL

Another filter reads the X‑CF‑Forwarded‑Url header and stores it in a special Gateway attribute so the final request is sent to the intended destination. Errors result in a 500 response, and the filter order is adjusted using ROUTE_TO_URL_FILTER_ORDER to ensure proper execution.

Deployment

After testing, the application can be built with ./gradlew build and deployed following the route‑service tutorial.

Conclusion

Spring Cloud Gateway is a useful, modern choice for Java developers who need a lightweight processing layer in front of Cloud Foundry applications. The full source code and additional predicates/filters are available in the linked repositories and official documentation.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Javaapi-gatewaySpring Cloud GatewayLogging FilterRoute Service
High Availability Architecture
Written by

High Availability Architecture

Official account for High Availability Architecture.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.