Various properties can be specified inside your
application.properties
file, inside your
application.yml
file, or as command line switches.
This appendix provides a list of common Spring Cloud Gateway properties and references to the underlying classes that consume them.
Property contributions can come from additional jar files on your classpath, so you should not consider this an exhaustive list.
Also, you can define your own properties.
spring.cloud.gateway.default-filters
List of filter definitions that are applied to every route.
spring.cloud.gateway.discovery.locator.enabled
false
Flag that enables DiscoveryClient gateway integration.
spring.cloud.gateway.discovery.locator.filters
spring.cloud.gateway.discovery.locator.include-expression
SpEL expression that will evaluate whether to include a service in gateway integration or not, defaults to: true.
spring.cloud.gateway.discovery.locator.lower-case-service-id
false
Option to lower case serviceId in predicates and filters, defaults to false. Useful with eureka when it automatically uppercases serviceId. so MYSERIVCE, would match /myservice/**
spring.cloud.gateway.discovery.locator.predicates
spring.cloud.gateway.discovery.locator.route-id-prefix
The prefix for the routeId, defaults to discoveryClient.getClass().getSimpleName() + "_". Service Id will be appended to create the routeId.
spring.cloud.gateway.discovery.locator.url-expression
'lb://'+serviceId
SpEL expression that create the uri for each route, defaults to: 'lb://'+serviceId.
spring.cloud.gateway.enabled
Enables gateway functionality.
spring.cloud.gateway.fail-on-route-definition-error
Option to fail on route definition errors, defaults to true. Otherwise, a warning is logged.
spring.cloud.gateway.filter.add-request-header.enabled
Enables the add-request-header filter.
spring.cloud.gateway.filter.add-request-parameter.enabled
Enables the add-request-parameter filter.
spring.cloud.gateway.filter.add-response-header.enabled
Enables the add-response-header filter.
spring.cloud.gateway.filter.circuit-breaker.enabled
Enables the circuit-breaker filter.
spring.cloud.gateway.filter.dedupe-response-header.enabled
Enables the dedupe-response-header filter.
spring.cloud.gateway.filter.fallback-headers.enabled
Enables the fallback-headers filter.
spring.cloud.gateway.filter.hystrix.enabled
Enables the hystrix filter.
spring.cloud.gateway.filter.json-to-grpc.enabled
Enables the JSON to gRPC filter.
spring.cloud.gateway.filter.local-response-cache.enabled
false
Enables the local-response-cache filter.
spring.cloud.gateway.filter.local-response-cache.request.no-cache-strategy
skip-update-cache-entry
spring.cloud.gateway.filter.local-response-cache.size
Maximum size of the cache to evict entries for this route (in KB, MB and GB).
spring.cloud.gateway.filter.local-response-cache.time-to-live
Time to expire a cache entry (expressed in s for seconds, m for minutes, and h for hours).
spring.cloud.gateway.filter.map-request-header.enabled
Enables the map-request-header filter.
spring.cloud.gateway.filter.modify-request-body.enabled
Enables the modify-request-body filter.
spring.cloud.gateway.filter.modify-response-body.enabled
Enables the modify-response-body filter.
spring.cloud.gateway.filter.prefix-path.enabled
Enables the prefix-path filter.
spring.cloud.gateway.filter.preserve-host-header.enabled
Enables the preserve-host-header filter.
spring.cloud.gateway.filter.redirect-to.enabled
Enables the redirect-to filter.
spring.cloud.gateway.filter.remove-hop-by-hop.headers
spring.cloud.gateway.filter.remove-request-header.enabled
Enables the remove-request-header filter.
spring.cloud.gateway.filter.remove-request-parameter.enabled
Enables the remove-request-parameter filter.
spring.cloud.gateway.filter.remove-response-header.enabled
Enables the remove-response-header filter.
spring.cloud.gateway.filter.request-header-size.enabled
Enables the request-header-size filter.
spring.cloud.gateway.filter.request-header-to-request-uri.enabled
Enables the request-header-to-request-uri filter.
spring.cloud.gateway.filter.request-rate-limiter.default-key-resolver
spring.cloud.gateway.filter.request-rate-limiter.enabled
Enables the request-rate-limiter filter.
spring.cloud.gateway.filter.request-size.enabled
Enables the request-size filter.
spring.cloud.gateway.filter.retry.enabled
Enables the retry filter.
spring.cloud.gateway.filter.rewrite-location-response-header.enabled
Enables the rewrite-location-response-header filter.
spring.cloud.gateway.filter.rewrite-location.enabled
Enables the rewrite-location filter.
spring.cloud.gateway.filter.rewrite-path.enabled
Enables the rewrite-path filter.
spring.cloud.gateway.filter.rewrite-request-parameter.enabled
Enables the rewrite-request-parameter filter.
spring.cloud.gateway.filter.rewrite-response-header.enabled
Enables the rewrite-response-header filter.
spring.cloud.gateway.filter.save-session.enabled
Enables the save-session filter.
spring.cloud.gateway.filter.secure-headers.content-security-policy
default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline'
spring.cloud.gateway.filter.secure-headers.content-type-options
nosniff
spring.cloud.gateway.filter.secure-headers.disable
spring.cloud.gateway.filter.set-request-header.enabled
Enables the set-request-header filter.
spring.cloud.gateway.filter.set-request-host-header.enabled
Enables the set-request-host-header filter.
spring.cloud.gateway.filter.set-response-header.enabled
Enables the set-response-header filter.
spring.cloud.gateway.filter.set-status.enabled
Enables the set-status filter.
spring.cloud.gateway.filter.strip-prefix.enabled
Enables the strip-prefix filter.
spring.cloud.gateway.forwarded.enabled
Enables the ForwardedHeadersFilter.
spring.cloud.gateway.global-filter.adapt-cached-body.enabled
Enables the adapt-cached-body global filter.
spring.cloud.gateway.global-filter.forward-path.enabled
Enables the forward-path global filter.
spring.cloud.gateway.global-filter.forward-routing.enabled
Enables the forward-routing global filter.
spring.cloud.gateway.global-filter.load-balancer-client.enabled
Enables the load-balancer-client global filter.
spring.cloud.gateway.global-filter.local-response-cache.enabled
Enables the local-response-cache filter for all routes, it allows to add a specific configuration at route level using LocalResponseCache filter.
spring.cloud.gateway.global-filter.netty-routing.enabled
Enables the netty-routing global filter.
spring.cloud.gateway.global-filter.netty-write-response.enabled
Enables the netty-write-response global filter.
spring.cloud.gateway.global-filter.reactive-load-balancer-client.enabled
Enables the reactive-load-balancer-client global filter.
spring.cloud.gateway.global-filter.remove-cached-body.enabled
Enables the remove-cached-body global filter.
spring.cloud.gateway.global-filter.route-to-request-url.enabled
Enables the route-to-request-url global filter.
spring.cloud.gateway.global-filter.websocket-routing.enabled
Enables the websocket-routing global filter.
spring.cloud.gateway.globalcors.add-to-simple-url-handler-mapping
false
If global CORS config should be added to the URL handler.
spring.cloud.gateway.globalcors.cors-configurations
spring.cloud.gateway.httpclient.compression
false
Enables compression for Netty HttpClient.
spring.cloud.gateway.httpclient.connect-timeout
The connect timeout in millis, the default is 30s.
spring.cloud.gateway.httpclient.max-header-size
The max response header size.
spring.cloud.gateway.httpclient.max-initial-line-length
The max initial line length.
spring.cloud.gateway.httpclient.pool.acquire-timeout
Only for type FIXED, the maximum time in millis to wait for acquiring.
spring.cloud.gateway.httpclient.pool.eviction-interval
Perform regular eviction checks in the background at a specified interval. Disabled by default ({@link Duration#ZERO})
spring.cloud.gateway.httpclient.pool.leasing-strategy
Configures the leasing strategy for the pool, defaults to FIFO which is Netty’s default.
spring.cloud.gateway.httpclient.pool.max-connections
Only for type FIXED, the maximum number of connections before starting pending acquisition on existing ones.
spring.cloud.gateway.httpclient.pool.max-idle-time
Time in millis after which the channel will be closed. If NULL, there is no max idle time.
spring.cloud.gateway.httpclient.pool.max-life-time
Duration after which the channel will be closed. If NULL, there is no max life time.
spring.cloud.gateway.httpclient.pool.metrics
false
Enables channel pools metrics to be collected and registered in Micrometer. Disabled by default.
spring.cloud.gateway.httpclient.pool.name
proxy
The channel pool map name, defaults to proxy.
spring.cloud.gateway.httpclient.pool.type
elastic
Type of pool for HttpClient to use, defaults to ELASTIC.
spring.cloud.gateway.httpclient.proxy.host
Hostname for proxy configuration of Netty HttpClient.
spring.cloud.gateway.httpclient.proxy.non-proxy-hosts-pattern
Regular expression (Java) for a configured list of hosts. that should be reached directly, bypassing the proxy
spring.cloud.gateway.httpclient.proxy.password
Password for proxy configuration of Netty HttpClient.
spring.cloud.gateway.httpclient.proxy.port
Port for proxy configuration of Netty HttpClient.
spring.cloud.gateway.httpclient.proxy.type
proxyType for proxy configuration of Netty HttpClient.
spring.cloud.gateway.httpclient.proxy.username
Username for proxy configuration of Netty HttpClient.
spring.cloud.gateway.httpclient.response-timeout
The response timeout.
spring.cloud.gateway.httpclient.ssl.close-notify-flush-timeout
3000ms
SSL close_notify flush timeout. Default to 3000 ms.
spring.cloud.gateway.httpclient.ssl.close-notify-read-timeout
SSL close_notify read timeout. Default to 0 ms.
spring.cloud.gateway.httpclient.ssl.handshake-timeout
10000ms
SSL handshake timeout. Default to 10000 ms
spring.cloud.gateway.httpclient.ssl.key-password
Key password, default is same as keyStorePassword.
spring.cloud.gateway.httpclient.ssl.key-store
Keystore path for Netty HttpClient.
spring.cloud.gateway.httpclient.ssl.key-store-password
Keystore password.
spring.cloud.gateway.httpclient.ssl.key-store-provider
Keystore provider for Netty HttpClient, optional field.
spring.cloud.gateway.httpclient.ssl.key-store-type
Keystore type for Netty HttpClient, default is JKS.
spring.cloud.gateway.httpclient.ssl.ssl-bundle
The name of the SSL bundle to use.
spring.cloud.gateway.httpclient.ssl.trusted-x509-certificates
Trusted certificates for verifying the remote endpoint’s certificate.
spring.cloud.gateway.httpclient.ssl.use-insecure-trust-manager
false
Installs the netty InsecureTrustManagerFactory. This is insecure and not suitable for production.
spring.cloud.gateway.httpclient.websocket.max-frame-payload-length
Max frame payload length.
spring.cloud.gateway.httpclient.websocket.proxy-ping
Proxy ping frames to downstream services, defaults to true.
spring.cloud.gateway.httpclient.wiretap
false
Enables wiretap debugging for Netty HttpClient.
spring.cloud.gateway.httpserver.wiretap
false
Enables wiretap debugging for Netty HttpServer.
spring.cloud.gateway.loadbalancer.use404
false
spring.cloud.gateway.metrics.enabled
false
Enables the collection of metrics data.
spring.cloud.gateway.metrics.prefix
spring.cloud.gateway
The prefix of all metrics emitted by gateway.
spring.cloud.gateway.metrics.tags
Tags map that added to metrics.
spring.cloud.gateway.mvc.form-filter.enabled
Enables the form-filter.
spring.cloud.gateway.mvc.forwarded-request-headers-filter.enabled
Enables the forwarded-request-headers-filter.
spring.cloud.gateway.mvc.http-client.connect-timeout
The HttpClient connect timeout.
spring.cloud.gateway.mvc.http-client.read-timeout
The HttpClient read timeout.
spring.cloud.gateway.mvc.http-client.ssl-bundle
The name of the SSL bundle to use.
spring.cloud.gateway.mvc.http-client.type
The HttpClient type. Defaults to JDK.
spring.cloud.gateway.mvc.remove-content-length-request-headers-filter.enabled
Enables the remove-content-length-request-headers-filter.
spring.cloud.gateway.mvc.remove-hop-by-hop-request-headers-filter.enabled
Enables the forwarded-request-headers-filter.
spring.cloud.gateway.mvc.remove-hop-by-hop-response-headers-filter.enabled
Enables the forwarded-request-headers-filter.
spring.cloud.gateway.mvc.routes
List of Routes.
spring.cloud.gateway.mvc.routes-map
Map of Routes.
spring.cloud.gateway.mvc.streaming-buffer-size
16384
Buffer size for streaming media mime-types.
spring.cloud.gateway.mvc.streaming-media-types
Mime-types that are streaming.
spring.cloud.gateway.mvc.transfer-encoding-normalization-request-headers-filter.enabled
Enables the transfer-encoding-normalization-request-headers-filter.
spring.cloud.gateway.mvc.weight-calculator-filter.enabled
Enables the weight-calculator-filter.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.enabled
If the XForwardedHeadersFilter is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.for-append
If appending X-Forwarded-For as a list is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.for-enabled
If X-Forwarded-For is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.host-append
If appending X-Forwarded-Host as a list is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.host-enabled
If X-Forwarded-Host is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.order
The order of the XForwardedHeadersFilter.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.port-append
If appending X-Forwarded-Port as a list is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.port-enabled
If X-Forwarded-Port is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.prefix-append
If appending X-Forwarded-Prefix as a list is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.prefix-enabled
If X-Forwarded-Prefix is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.proto-append
If appending X-Forwarded-Proto as a list is enabled.
spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.proto-enabled
If X-Forwarded-Proto is enabled.
spring.cloud.gateway.observability.enabled
If Micrometer Observability support should be turned on.
spring.cloud.gateway.predicate.after.enabled
Enables the after predicate.
spring.cloud.gateway.predicate.before.enabled
Enables the before predicate.
spring.cloud.gateway.predicate.between.enabled
Enables the between predicate.
spring.cloud.gateway.predicate.cloud-foundry-route-service.enabled
Enables the cloud-foundry-route-service predicate.
spring.cloud.gateway.predicate.cookie.enabled
Enables the cookie predicate.
spring.cloud.gateway.predicate.header.enabled
Enables the header predicate.
spring.cloud.gateway.predicate.host.enabled
Enables the host predicate.
spring.cloud.gateway.predicate.host.include-port
Include the port in matching the host name.
spring.cloud.gateway.predicate.method.enabled
Enables the method predicate.
spring.cloud.gateway.predicate.path.enabled
Enables the path predicate.
spring.cloud.gateway.predicate.query.enabled
Enables the query predicate.
spring.cloud.gateway.predicate.read-body.enabled
Enables the read-body predicate.
spring.cloud.gateway.predicate.remote-addr.enabled
Enables the remote-addr predicate.
spring.cloud.gateway.predicate.weight.enabled
Enables the weight predicate.
spring.cloud.gateway.predicate.xforwarded-remote-addr.enabled
Enables the xforwarded-remote-addr predicate.
spring.cloud.gateway.redis-rate-limiter.burst-capacity-header
X-RateLimit-Burst-Capacity
The name of the header that returns the burst capacity configuration.
spring.cloud.gateway.redis-rate-limiter.config
spring.cloud.gateway.redis-rate-limiter.include-headers
Whether or not to include headers containing rate limiter information, defaults to true.
spring.cloud.gateway.redis-rate-limiter.remaining-header
X-RateLimit-Remaining
The name of the header that returns number of remaining requests during the current second.
spring.cloud.gateway.redis-rate-limiter.replenish-rate-header
X-RateLimit-Replenish-Rate
The name of the header that returns the replenish rate configuration.
spring.cloud.gateway.redis-rate-limiter.requested-tokens-header
X-RateLimit-Requested-Tokens
The name of the header that returns the requested tokens configuration.
spring.cloud.gateway.redis-route-definition-repository.enabled
If RedisRouteDefinitionRepository should be enabled.
spring.cloud.gateway.restrictive-property-accessor.enabled
Restricts method and property access in SpEL.
spring.cloud.gateway.route-filter-cache-enabled
false
Enables the route filter cache, defaults to false.
spring.cloud.gateway.route-refresh-listener.enabled
If RouteRefreshListener should be turned on.
spring.cloud.gateway.routes
List of Routes.
spring.cloud.gateway.set-status.original-status-header-name
The name of the header which contains http code of the proxied request.
spring.cloud.gateway.streaming-media-types
spring.cloud.gateway.x-forwarded.for-append
If appending X-Forwarded-For as a list is enabled.
spring.cloud.gateway.x-forwarded.for-enabled
If X-Forwarded-For is enabled.
spring.cloud.gateway.x-forwarded.host-append
If appending X-Forwarded-Host as a list is enabled.
spring.cloud.gateway.x-forwarded.host-enabled
If X-Forwarded-Host is enabled.
spring.cloud.gateway.x-forwarded.order
The order of the XForwardedHeadersFilter.
spring.cloud.gateway.x-forwarded.port-append
If appending X-Forwarded-Port as a list is enabled.
spring.cloud.gateway.x-forwarded.port-enabled
If X-Forwarded-Port is enabled.
spring.cloud.gateway.x-forwarded.prefix-append
If appending X-Forwarded-Prefix as a list is enabled.
spring.cloud.gateway.x-forwarded.prefix-enabled
If X-Forwarded-Prefix is enabled.
spring.cloud.gateway.x-forwarded.proto-append
If appending X-Forwarded-Proto as a list is enabled.
spring.cloud.gateway.x-forwarded.proto-enabled
If X-Forwarded-Proto is enabled.
Below you can find a list of all metrics declared by this project.
Observation created when sending a request through the gateway.
Metric name
http.client.requests
(defined by convention class
org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention
).
Type
timer
.
Metric name
http.client.requests.active
(defined by convention class
org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention
).
Type
long task timer
.
Fully qualified name of the enclosing class
org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation
.
Table 1. Low cardinality Keys
Span name
http.client.requests
(defined by convention class
org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention
).
Fully qualified name of the enclosing class
org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation
.
Table 3. Tag Keys
Below you can find a list of all
GlobalObservationConvention
and
ObservationConvention
declared by this project.
Table 4. ObservationConvention implementations
org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention
GatewayContext
org.springframework.cloud.gateway.filter.headers.observation.GatewayObservationConvention
GatewayContext
Apache®, Apache Tomcat®, Apache Kafka®, Apache Cassandra™, and Apache Geode™ are trademarks or registered trademarks of the Apache Software Foundation in the United States and/or other countries. Java™, Java™ SE, Java™ EE, and OpenJDK™ are trademarks of Oracle and/or its affiliates. Kubernetes® is a registered trademark of the Linux Foundation in the United States and other countries. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Windows® and Microsoft® Azure are registered trademarks of Microsoft Corporation. “AWS” and “Amazon Web Services” are trademarks or registered trademarks of Amazon.com Inc. or its affiliates. All other trademarks and copyrights are property of their respective owners and are only mentioned for informative purposes. Other names may be trademarks of their respective owners.