diff --git a/2.1.x/ghpages.sh b/2.1.x/ghpages.sh index 57c5da3a..55e76be1 100644 --- a/2.1.x/ghpages.sh +++ b/2.1.x/ghpages.sh @@ -40,7 +40,7 @@ function check_if_anything_to_sync() { function retrieve_current_branch() { # Code getting the name of the current branch. For master we want to publish as we did until now - # http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch + # https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch # If there is a branch already passed will reuse it - otherwise will try to find it CURRENT_BRANCH=${BRANCH} if [[ -z "${CURRENT_BRANCH}" ]] ; then @@ -147,7 +147,7 @@ function copy_docs_for_current_version() { COMMIT_CHANGES="yes" else echo -e "Current branch is [${CURRENT_BRANCH}]" - # http://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin + # https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin if [[ ",${WHITELISTED_BRANCHES_VALUE}," = *",${CURRENT_BRANCH},"* ]] ; then mkdir -p ${ROOT_FOLDER}/${CURRENT_BRANCH} echo -e "Branch [${CURRENT_BRANCH}] is whitelisted! Will copy the current docs to the [${CURRENT_BRANCH}] folder" diff --git a/2.1.x/multi/multi__gatewayfilter_factories.html b/2.1.x/multi/multi__gatewayfilter_factories.html index 79ccfe14..28e0ff11 100644 --- a/2.1.x/multi/multi__gatewayfilter_factories.html +++ b/2.1.x/multi/multi__gatewayfilter_factories.html @@ -23,11 +23,20 @@ cloud: gateway: routes: - - id: add_request_header_route + - id: add_response_header_route uri: http://example.org filters: - AddResponseHeader=X-Response-Foo, Bar
-
This will add X-Response-Foo:Bar header to the downstream response’s headers for all matching requests.
Hystrix is a library from Netflix that implements the circuit breaker pattern. +
This will add X-Response-Foo:Bar header to the downstream response’s headers for all matching requests.
The DedupeResponseHeader GatewayFilter Factory takes a name parameter and an optional strategy parameter. name can contain a list of header names, space separated.
application.yml. +
spring: + cloud: + gateway: + routes: + - id: dedupe_response_header_route + uri: http://example.org + filters: + - DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
+
This will remove duplicate values of Access-Control-Allow-Credentials and Access-Control-Allow-Origin response headers in cases when both the gateway CORS logic and the downstream add them.
The DedupeResponseHeader filter also accepts an optional strategy parameter. The accepted values are RETAIN_FIRST (default), RETAIN_LAST, and RETAIN_UNIQUE.
Hystrix is a library from Netflix that implements the circuit breaker pattern. The Hystrix GatewayFilter allows you to introduce circuit breakers to your gateway routes, protecting your services from cascading failures and allowing you to provide fallback responses in the event of downstream failures.
To enable Hystrix GatewayFilters in your project, add a dependency on spring-cloud-starter-netflix-hystrix from Spring Cloud Netflix.
The Hystrix GatewayFilter Factory requires a single name parameter, which is the name of the HystrixCommand.
application.yml.
spring: cloud: @@ -76,9 +85,9 @@ app, registered underServerWebExchangeas theServerWebExchangeUtils.HYSTRIX_EXECUTION_EXCEPTION_ATTRattribute that can be used when handling the fallback within the gateway app.For the external controller/ handler scenario, headers can be added with exception details. You can find more information -on it in the FallbackHeaders GatewayFilter Factory section.
Hystrix settings (such as timeouts) can be configured with global defaults or on a route by route basis using application properties as explained on the Hystrix wiki.
To set a 5 second timeout for the example route above, the following configuration would be used:
application.yml. +on it in the FallbackHeaders GatewayFilter Factory section.
Hystrix settings (such as timeouts) can be configured with global defaults or on a route by route basis using application properties as explained on the Hystrix wiki.
To set a 5 second timeout for the example route above, the following configuration would be used:
application.yml.
hystrix.command.fallbackcmd.execution.isolation.thread.timeoutInMilliseconds: 5000-
The FallbackHeaders factory allows you to add Hystrix execution exception details in headers of a request forwarded to
+
The FallbackHeaders factory allows you to add Hystrix execution exception details in headers of a request forwarded to
a fallbackUri in an external application, like in the following scenario:
application.yml.
spring: cloud: @@ -104,7 +113,7 @@ afallbackUriin an external application, like in tIn this example, after an execution exception occurs while running the
HystrixCommand, the request will be forwarde to thefallbackendpoint or handler in an app running onlocalhost:9994. The headers with the exception type, message and -if available- root cause exception type and message will be added to that request by theFallbackHeadersfilter.The names of the headers can be overwritten in the config by setting the values of the arguments listed below, along with -their default values:
executionExceptionTypeHeaderName("Execution-Exception-Type")executionExceptionMessageHeaderName("Execution-Exception-Message")rootCauseExceptionTypeHeaderName("Root-Cause-Exception-Type")rootCauseExceptionMessageHeaderName("Root-Cause-Exception-Message")You can find more information on how Hystrix works with Gateway in the Hystrix GatewayFilter Factory section.
The PrefixPath GatewayFilter Factory takes a single prefix parameter.
application.yml. +their default values:
executionExceptionTypeHeaderName ("Execution-Exception-Type")executionExceptionMessageHeaderName ("Execution-Exception-Message")rootCauseExceptionTypeHeaderName ("Root-Cause-Exception-Type")rootCauseExceptionMessageHeaderName ("Root-Cause-Exception-Message")You can find more information on how Hystrix works with Gateway in the Hystrix GatewayFilter Factory section.
The PrefixPath GatewayFilter Factory takes a single prefix parameter.
application.yml.
spring: cloud: gateway: @@ -113,7 +122,7 @@ their default values:uri: http://example.org filters: - PrefixPath=/mypath
-
This will prefix
/mypathto the path of all matching requests. So a request to/hello, would be sent to/mypath/hello.The PreserveHostHeader GatewayFilter Factory has not parameters. This filter, sets a request attribute that the routing filter will inspect to determine if the original host header should be sent, rather than the host header determined by the http client.
application.yml. +
This will prefix
/mypathto the path of all matching requests. So a request to/hello, would be sent to/mypath/hello.The PreserveHostHeader GatewayFilter Factory has not parameters. This filter, sets a request attribute that the routing filter will inspect to determine if the original host header should be sent, rather than the host header determined by the http client.
application.yml.
spring: cloud: gateway: @@ -122,14 +131,14 @@ their default values:uri: http://example.org filters: - PreserveHostHeader
-
The RequestRateLimiter GatewayFilter Factory is uses a
RateLimiterimplementation to determine if the current request is allowed to proceed. If it is not, a status ofHTTP 429 - Too Many Requests(by default) is returned.This filter takes an optional
keyResolverparameter and parameters specific to the rate limiter (see below).
keyResolveris a bean that implements theKeyResolverinterface. In configuration, reference the bean by name using SpEL.#{@myKeyResolver}is a SpEL expression referencing a bean with the namemyKeyResolver.KeyResolver.java. +
The RequestRateLimiter GatewayFilter Factory is uses a
RateLimiterimplementation to determine if the current request is allowed to proceed. If it is not, a status ofHTTP 429 - Too Many Requests(by default) is returned.This filter takes an optional
keyResolverparameter and parameters specific to the rate limiter (see below).
keyResolveris a bean that implements theKeyResolverinterface. In configuration, reference the bean by name using SpEL.#{@myKeyResolver}is a SpEL expression referencing a bean with the namemyKeyResolver.KeyResolver.java.
public interface KeyResolver { Mono<String> resolve(ServerWebExchange exchange); }
The
KeyResolverinterface allows pluggable strategies to derive the key for limiting requests. In future milestones, there will be someKeyResolverimplementations.The default implementation of
KeyResolveris thePrincipalNameKeyResolverwhich retrieves thePrincipalfrom theServerWebExchangeand callsPrincipal.getName().By default, if the
KeyResolverdoes not find a key, requests will be denied. This behavior can be adjust with thespring.cloud.gateway.filter.request-rate-limiter.deny-empty-key(true or false) andspring.cloud.gateway.filter.request-rate-limiter.empty-key-status-codeproperties.
Note The RequestRateLimiter is not configurable via the "shortcut" notation. The example below is invalid
application.properties.
# INVALID SHORTCUT CONFIGURATION spring.cloud.gateway.routes[0].filters[0]=RequestRateLimiter=2, 2, #{@userkeyresolver}-
The redis implementation is based off of work done at Stripe. It requires the use of the
spring-boot-starter-data-redis-reactiveSpring Boot starter.The algorithm used is the Token Bucket Algorithm.
The
redis-rate-limiter.replenishRateis how many requests per second do you want a user to be allowed to do, without any dropped requests. This is the rate that the token bucket is filled.The
redis-rate-limiter.burstCapacityis the maximum number of requests a user is allowed to do in a single second. This is the number of tokens the token bucket can hold. Setting this value to zero will block all requests.A steady rate is accomplished by setting the same value in
replenishRateandburstCapacity. Temporary bursts can be allowed by settingburstCapacityhigher thanreplenishRate. In this case, the rate limiter needs to be allowed some time between bursts (according toreplenishRate), as 2 consecutive bursts will result in dropped requests (HTTP 429 - Too Many Requests).application.yml. +
The redis implementation is based off of work done at Stripe. It requires the use of the
spring-boot-starter-data-redis-reactiveSpring Boot starter.The algorithm used is the Token Bucket Algorithm.
The
redis-rate-limiter.replenishRateis how many requests per second do you want a user to be allowed to do, without any dropped requests. This is the rate that the token bucket is filled.The
redis-rate-limiter.burstCapacityis the maximum number of requests a user is allowed to do in a single second. This is the number of tokens the token bucket can hold. Setting this value to zero will block all requests.A steady rate is accomplished by setting the same value in
replenishRateandburstCapacity. Temporary bursts can be allowed by settingburstCapacityhigher thanreplenishRate. In this case, the rate limiter needs to be allowed some time between bursts (according toreplenishRate), as 2 consecutive bursts will result in dropped requests (HTTP 429 - Too Many Requests).application.yml.
spring: cloud: gateway: @@ -158,7 +167,7 @@ KeyResolver userKeyResolver() { args: rate-limiter: "#{@myRateLimiter}" key-resolver: "#{@userKeyResolver}"-
The RedirectTo GatewayFilter Factory takes a
statusand aurlparameter. The status should be a 300 series redirect http code, such as 301. The url should be a valid url. This will be the value of theLocationheader.application.yml.
spring: cloud: gateway: @@ -167,7 +176,7 @@ KeyResolver userKeyResolver() { uri: http://example.org filters: - RedirectTo=302, http://acme.org-
This will send a status 302 with a
Location:http://acme.orgheader to perform a redirect.The RemoveHopByHopHeadersFilter GatewayFilter Factory removes headers from forwarded requests. The default list of headers that is removed comes from the IETF.
The default removed headers are:
- Connection
- Keep-Alive
- Proxy-Authenticate
- Proxy-Authorization
- TE
- Trailer
- Transfer-Encoding
- Upgrade
To change this, set the
spring.cloud.gateway.filter.remove-non-proxy-headers.headersproperty to the list of header names to remove.The RemoveRequestHeader GatewayFilter Factory takes a
nameparameter. It is the name of the header to be removed.application.yml. +
This will send a status 302 with a
Location:http://acme.orgheader to perform a redirect.The RemoveHopByHopHeadersFilter GatewayFilter Factory removes headers from forwarded requests. The default list of headers that is removed comes from the IETF.
The default removed headers are:
- Connection
- Keep-Alive
- Proxy-Authenticate
- Proxy-Authorization
- TE
- Trailer
- Transfer-Encoding
- Upgrade
To change this, set the
spring.cloud.gateway.filter.remove-non-proxy-headers.headersproperty to the list of header names to remove.The RemoveRequestHeader GatewayFilter Factory takes a
nameparameter. It is the name of the header to be removed.application.yml.
spring: cloud: gateway: @@ -176,7 +185,7 @@ KeyResolver userKeyResolver() { uri: http://example.org filters: - RemoveRequestHeader=X-Request-Foo-
This will remove the
X-Request-Fooheader before it is sent downstream.The RemoveResponseHeader GatewayFilter Factory takes a
nameparameter. It is the name of the header to be removed.application.yml. +
This will remove the
X-Request-Fooheader before it is sent downstream.The RemoveResponseHeader GatewayFilter Factory takes a
nameparameter. It is the name of the header to be removed.application.yml.
spring: cloud: gateway: @@ -187,7 +196,7 @@ KeyResolver userKeyResolver() { - RemoveResponseHeader=X-Response-Foo
This will remove the
X-Response-Fooheader from the response before it is returned to the gateway client.To remove any kind of sensitive header you should configure this filter for any routes that you may want to do so. In addition you can configure this filter once using
spring.cloud.gateway.default-filters-and have it applied to all routes.The RewritePath GatewayFilter Factory takes a path
regexpparameter and areplacementparameter. This uses Java regular expressions for a flexible way to rewrite the request path.application.yml. +and have it applied to all routes.
The RewritePath GatewayFilter Factory takes a path
regexpparameter and areplacementparameter. This uses Java regular expressions for a flexible way to rewrite the request path.application.yml.
spring: cloud: gateway: @@ -198,7 +207,7 @@ and have it applied to all routes.- Path=/foo/** filters: - RewritePath=/foo/(?<segment>.*), /$\{segment}-
For a request path of
/foo/bar, this will set the path to/barbefore making the downstream request. Notice the$\which is replaced with$because of the YAML spec.The RewriteResponseHeader GatewayFilter Factory takes
name,regexp, andreplacementparameters. It uses Java regular expressions for a flexible way to rewrite the response header value.application.yml. +
For a request path of
/foo/bar, this will set the path to/barbefore making the downstream request. Notice the$\which is replaced with$because of the YAML spec.The RewriteResponseHeader GatewayFilter Factory takes
name,regexp, andreplacementparameters. It uses Java regular expressions for a flexible way to rewrite the response header value.application.yml.
spring: cloud: gateway: @@ -207,7 +216,7 @@ and have it applied to all routes.uri: http://example.org filters: - RewriteResponseHeader=X-Response-Foo, , password=[^&]+, password=***-
For a header value of
/42?user=ford&password=omg!what&flag=true, it will be set to/42?user=ford&password=***&flag=trueafter making the downstream request. Please use$\to mean$because of the YAML spec.The SaveSession GatewayFilter Factory forces a
WebSession::saveoperation before forwarding the call downstream. This is of particular use when +For a header value of
/42?user=ford&password=omg!what&flag=true, it will be set to/42?user=ford&password=***&flag=trueafter making the downstream request. Please use$\to mean$because of the YAML spec.The SaveSession GatewayFilter Factory forces a
WebSession::saveoperation before forwarding the call downstream. This is of particular use when using something like Spring Session with a lazy data store and need to ensure the session state has been saved before making the forwarded call.application.yml.
spring: cloud: @@ -219,7 +228,7 @@ using something like - Path=/foo/** filters: - SaveSession-
If you are integrating Spring Security with Spring Session, and want to ensure security details have been forwarded to the remote process, this is critical.
The SecureHeaders GatewayFilter Factory adds a number of headers to the response at the reccomendation from this blog post.
The following headers are added (allong with default values):
X-Xss-Protection:1; mode=blockStrict-Transport-Security:max-age=631138519X-Frame-Options:DENYX-Content-Type-Options:nosniffReferrer-Policy:no-referrerContent-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'X-Download-Options:noopenX-Permitted-Cross-Domain-Policies:noneTo change the default values set the appropriate property in the
spring.cloud.gateway.filter.secure-headersnamespace:Property to change:
xss-protection-headerstrict-transport-securityframe-optionscontent-type-optionsreferrer-policycontent-security-policydownload-optionspermitted-cross-domain-policiesThe SetPath GatewayFilter Factory takes a path
templateparameter. It offers a simple way to manipulate the request path by allowing templated segments of the path. This uses the uri templates from Spring Framework. Multiple matching segments are allowed.application.yml. +
If you are integrating Spring Security with Spring Session, and want to ensure security details have been forwarded to the remote process, this is critical.
The SecureHeaders GatewayFilter Factory adds a number of headers to the response at the reccomendation from this blog post.
The following headers are added (allong with default values):
X-Xss-Protection:1; mode=blockStrict-Transport-Security:max-age=631138519X-Frame-Options:DENYX-Content-Type-Options:nosniffReferrer-Policy:no-referrerContent-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'X-Download-Options:noopenX-Permitted-Cross-Domain-Policies:noneTo change the default values set the appropriate property in the
spring.cloud.gateway.filter.secure-headersnamespace:Property to change:
xss-protection-headerstrict-transport-securityframe-optionscontent-type-optionsreferrer-policycontent-security-policydownload-optionspermitted-cross-domain-policiesThe SetPath GatewayFilter Factory takes a path
templateparameter. It offers a simple way to manipulate the request path by allowing templated segments of the path. This uses the uri templates from Spring Framework. Multiple matching segments are allowed.application.yml.
spring: cloud: gateway: @@ -230,7 +239,7 @@ using something like - Path=/foo/{segment} filters: - SetPath=/{segment}-
For a request path of
/foo/bar, this will set the path to/barbefore making the downstream request.The SetResponseHeader GatewayFilter Factory takes
nameandvalueparameters.application.yml. +
For a request path of
/foo/bar, this will set the path to/barbefore making the downstream request.The SetResponseHeader GatewayFilter Factory takes
nameandvalueparameters.application.yml.
spring: cloud: gateway: @@ -239,7 +248,7 @@ using something like uri: http://example.org filters: - SetResponseHeader=X-Response-Foo, Bar-
This GatewayFilter replaces all headers with the given name, rather than adding. So if the downstream server responded with a
X-Response-Foo:1234, this would be replaced withX-Response-Foo:Bar, which is what the gateway client would receive.The SetStatus GatewayFilter Factory takes a single
statusparameter. It must be a valid SpringHttpStatus. It may be the integer value404or the string representation of the enumerationNOT_FOUND.application.yml. +
This GatewayFilter replaces all headers with the given name, rather than adding. So if the downstream server responded with a
X-Response-Foo:1234, this would be replaced withX-Response-Foo:Bar, which is what the gateway client would receive.The SetStatus GatewayFilter Factory takes a single
statusparameter. It must be a valid SpringHttpStatus. It may be the integer value404or the string representation of the enumerationNOT_FOUND.application.yml.
spring: cloud: gateway: @@ -252,7 +261,7 @@ using something like uri: http://example.org filters: - SetStatus=401-
In either case, the HTTP status of the response will be set to 401.
The StripPrefix GatewayFilter Factory takes one paramter,
parts. Thepartsparameter indicated the number of parts in the path to strip from the request before sending it downstream.application.yml. +
In either case, the HTTP status of the response will be set to 401.
The StripPrefix GatewayFilter Factory takes one paramter,
parts. Thepartsparameter indicated the number of parts in the path to strip from the request before sending it downstream.application.yml.
spring: cloud: gateway: @@ -263,7 +272,7 @@ using something like - Path=/name/** filters: - StripPrefix=2-
When a request is made through the gateway to
/name/bar/foothe request made tonameservicewill look likehttp://nameservice/foo.The Retry GatewayFilter Factory takes
retries,statuses,methods, andseriesas parameters.
retries: the number of retries that should be attemptedstatuses: the HTTP status codes that should be retried, represented usingorg.springframework.http.HttpStatusmethods: the HTTP methods that should be retried, represented usingorg.springframework.http.HttpMethodseries: the series of status codes to be retried, represented usingorg.springframework.http.HttpStatus.Seriesapplication.yml. +
When a request is made through the gateway to
/name/bar/foothe request made tonameservicewill look likehttp://nameservice/foo.The Retry GatewayFilter Factory takes
retries,statuses,methods, andseriesas parameters.
retries: the number of retries that should be attemptedstatuses: the HTTP status codes that should be retried, represented usingorg.springframework.http.HttpStatusmethods: the HTTP methods that should be retried, represented usingorg.springframework.http.HttpMethodseries: the series of status codes to be retried, represented usingorg.springframework.http.HttpStatus.Seriesapplication.yml.
spring: cloud: gateway: @@ -277,7 +286,7 @@ using something like args: retries: 3 statuses: BAD_GATEWAY-
Note The retry filter does not currently support retrying with a body (e.g. for POST or PUT requests with a body).
Note When using the retry filter with a
forward:prefixed URL, the target endpoint should be written carefully so that in case of an error it does not do anything that could result in a response being sent to the client and committed. For example, if the target endpoint is an annotated controller, the target controller method should not returnResponseEntitywith an error status code. Instead it should throw anException, or signal an error, e.g. via aMono.error(ex)return value, which the retry filter can be configured to handle by retrying.The RequestSize GatewayFilter Factory can restrict a request from reaching the downstream service , when the request size is greater than the permissible limit. The filter takes
RequestSizeas parameter which is the permissible size limit of the request defined in bytes.application.yml. +
Note The retry filter does not currently support retrying with a body (e.g. for POST or PUT requests with a body).
Note When using the retry filter with a
forward:prefixed URL, the target endpoint should be written carefully so that in case of an error it does not do anything that could result in a response being sent to the client and committed. For example, if the target endpoint is an annotated controller, the target controller method should not returnResponseEntitywith an error status code. Instead it should throw anException, or signal an error, e.g. via aMono.error(ex)return value, which the retry filter can be configured to handle by retrying.The RequestSize GatewayFilter Factory can restrict a request from reaching the downstream service , when the request size is greater than the permissible limit. The filter takes
RequestSizeas parameter which is the permissible size limit of the request defined in bytes.application.yml.
spring: cloud: gateway: @@ -290,7 +299,7 @@ using something like - name: RequestSize args: maxSize: 5000000-
The RequestSize GatewayFilter Factory set the response status as
413 Payload Too Largewith a additional headererrorMessagewhen the Request is rejected due to size. Following is an example of such anerrorMessage.
errorMessage:Request size is larger than permissible limit. Request size is 6.0 MB where permissible limit is 5.0 MB
Note The default Request size will be set to 5 MB if not provided as filter argument in route definition.
This filter is considered BETA and the API may change in the future
This filter can be used to modify the request body before it is sent downstream by the Gateway.
Note This filter can only be configured using the Java DSL
@Bean +The RequestSize GatewayFilter Factory set the response status as
413 Payload Too Largewith a additional headererrorMessagewhen the Request is rejected due to size. Following is an example of such anerrorMessage.
errorMessage:Request size is larger than permissible limit. Request size is 6.0 MB where permissible limit is 5.0 MB
Note The default Request size will be set to 5 MB if not provided as filter argument in route definition.
This filter is considered BETA and the API may change in the future
This filter can be used to modify the request body before it is sent downstream by the Gateway.
Note This filter can only be configured using the Java DSL
@Bean public RouteLocator routes(RouteLocatorBuilder builder) { return builder.routes() .route("rewrite_request_obj", r -> r.host("*.rewriterequestobj.org") @@ -316,7 +325,7 @@ using something like public void setMessage(String message) { this.message = message; } -}This filter is considered BETA and the API may change in the future
This filter can be used to modify the response body before it is sent back to the Client.
Note This filter can only be configured using the Java DSL
@Bean +}This filter is considered BETA and the API may change in the future
This filter can be used to modify the response body before it is sent back to the Client.
Note This filter can only be configured using the Java DSL
@Bean public RouteLocator routes(RouteLocatorBuilder builder) { return builder.routes() .route("rewrite_response_upper", r -> r.host("*.rewriteresponseupper.org") @@ -324,7 +333,7 @@ using something like class, String.class, (exchange, s) -> Mono.just(s.toUpperCase()))).uri(uri) .build(); -}If you would like to add a filter and apply it to all routes you can use
spring.cloud.gateway.default-filters. +}If you would like to add a filter and apply it to all routes you can use
spring.cloud.gateway.default-filters. This property takes a list of filtersapplication.yml.
spring: cloud: diff --git a/2.1.x/multi/multi_spring-cloud-gateway.html b/2.1.x/multi/multi_spring-cloud-gateway.html index a95d4e28..cc8bc2e8 100644 --- a/2.1.x/multi/multi_spring-cloud-gateway.html +++ b/2.1.x/multi/multi_spring-cloud-gateway.html @@ -1,3 +1,3 @@ -Spring Cloud Gateway \ No newline at end of file +Table of Contents
- 1. How to Include Spring Cloud Gateway
- 2. Glossary
- 3. How It Works
- 4. Route Predicate Factories
- 4.1. After Route Predicate Factory
- 4.2. Before Route Predicate Factory
- 4.3. Between Route Predicate Factory
- 4.4. Cookie Route Predicate Factory
- 4.5. Header Route Predicate Factory
- 4.6. Host Route Predicate Factory
- 4.7. Method Route Predicate Factory
- 4.8. Path Route Predicate Factory
- 4.9. Query Route Predicate Factory
- 4.10. RemoteAddr Route Predicate Factory
- 5. GatewayFilter Factories
- 5.1. AddRequestHeader GatewayFilter Factory
- 5.2. AddRequestParameter GatewayFilter Factory
- 5.3. AddResponseHeader GatewayFilter Factory
- 5.4. Hystrix GatewayFilter Factory
- 5.5. FallbackHeaders GatewayFilter Factory
- 5.6. PrefixPath GatewayFilter Factory
- 5.7. PreserveHostHeader GatewayFilter Factory
- 5.8. RequestRateLimiter GatewayFilter Factory
- 5.9. RedirectTo GatewayFilter Factory
- 5.10. RemoveHopByHopHeadersFilter GatewayFilter Factory
- 5.11. RemoveRequestHeader GatewayFilter Factory
- 5.12. RemoveResponseHeader GatewayFilter Factory
- 5.13. RewritePath GatewayFilter Factory
- 5.14. RewriteResponseHeader GatewayFilter Factory
- 5.15. SaveSession GatewayFilter Factory
- 5.16. SecureHeaders GatewayFilter Factory
- 5.17. SetPath GatewayFilter Factory
- 5.18. SetResponseHeader GatewayFilter Factory
- 5.19. SetStatus GatewayFilter Factory
- 5.20. StripPrefix GatewayFilter Factory
- 5.21. Retry GatewayFilter Factory
- 5.22. RequestSize GatewayFilter Factory
- 5.23. Modify Request Body GatewayFilter Factory
- 5.24. Modify Response Body GatewayFilter Factory
- 5.25. Default Filters
- 6. Global Filters
- 7. TLS / SSL
- 8. Configuration
- 9. Reactor Netty Access Logs
- 10. CORS Configuration
- 11. Actuator API
- 12. Developer Guide
- 13. Building a Simple Gateway Using Spring MVC or Webflux
Spring Cloud Gateway Table of Contents
- 1. How to Include Spring Cloud Gateway
- 2. Glossary
- 3. How It Works
- 4. Route Predicate Factories
- 4.1. After Route Predicate Factory
- 4.2. Before Route Predicate Factory
- 4.3. Between Route Predicate Factory
- 4.4. Cookie Route Predicate Factory
- 4.5. Header Route Predicate Factory
- 4.6. Host Route Predicate Factory
- 4.7. Method Route Predicate Factory
- 4.8. Path Route Predicate Factory
- 4.9. Query Route Predicate Factory
- 4.10. RemoteAddr Route Predicate Factory
- 5. GatewayFilter Factories
- 5.1. AddRequestHeader GatewayFilter Factory
- 5.2. AddRequestParameter GatewayFilter Factory
- 5.3. AddResponseHeader GatewayFilter Factory
- 5.4. DedupeResponseHeader GatewayFilter Factory
- 5.5. Hystrix GatewayFilter Factory
- 5.6. FallbackHeaders GatewayFilter Factory
- 5.7. PrefixPath GatewayFilter Factory
- 5.8. PreserveHostHeader GatewayFilter Factory
- 5.9. RequestRateLimiter GatewayFilter Factory
- 5.10. RedirectTo GatewayFilter Factory
- 5.11. RemoveHopByHopHeadersFilter GatewayFilter Factory
- 5.12. RemoveRequestHeader GatewayFilter Factory
- 5.13. RemoveResponseHeader GatewayFilter Factory
- 5.14. RewritePath GatewayFilter Factory
- 5.15. RewriteResponseHeader GatewayFilter Factory
- 5.16. SaveSession GatewayFilter Factory
- 5.17. SecureHeaders GatewayFilter Factory
- 5.18. SetPath GatewayFilter Factory
- 5.19. SetResponseHeader GatewayFilter Factory
- 5.20. SetStatus GatewayFilter Factory
- 5.21. StripPrefix GatewayFilter Factory
- 5.22. Retry GatewayFilter Factory
- 5.23. RequestSize GatewayFilter Factory
- 5.24. Modify Request Body GatewayFilter Factory
- 5.25. Modify Response Body GatewayFilter Factory
- 5.26. Default Filters
- 6. Global Filters
- 7. TLS / SSL
- 8. Configuration
- 9. Reactor Netty Access Logs
- 10. CORS Configuration
- 11. Actuator API
- 12. Developer Guide
- 13. Building a Simple Gateway Using Spring MVC or Webflux