Property: spring.cloud.gateway.globalcors.enabled
Reason: CORS filter was applied automatically and it doens't allow developers to customise CORS for specific scenarios. Disabling SCG listener allows developers to customise or reuse CORS logic.
* Fix different typos across the doc file
* Standardize titles of GatewayFilter Factories section and order alphabetically (no content changed)
* Order alphabetically section of Global Filters (no content changed)
* Add docs for Global Local Cache Response filter
* Set correct order for LocalResponseCache filter config
* Add link for key-resolver-section
Gateway uses WebFlux and WebFlux has native instrumentation using Micrometer Observations. WebFlux adds the Observation to the Reactor Context, but in the Headers filter inside the Gateway we no longer have access to the context.
With this change, when we process a route we attach the Reactor Context as a Gateway ServerWebExchange attribute, so that we can check for parent Observations later in the HttpHeadersFilter
* Adds support for Uri variables for fallbackUri in CircuitBreaker.
Uses `ServerWebExchangeUtils.expand` to process the original value and replace any variable present.
To do so, adds 2 components:
* ApplicationLister that updates CorsProperties based on route metadata
Also:
* Renamed CorsTests to CorsGlobalTests
* Add test CorsPerRouteTests
* Add docs: split current single section into 2: global & route config
* Add RemoveJsonAttributesFilterFactory
Takes a collection of attribute names to search for to remove from a JSON response, an optional last parameter from the list can be a boolean to remove the attributes just at root level or recursively
* Add docs for RemoveJsonAttributes filter
* Extract a single instance of Json mapper
* Overload boolean parameter to avoid parsing a string
This filter is similar to 'AddRequestHeaderGatewayFilterFactory'
but will only add filters if there are not present, and allows
setting multiple filters
without this change when there is no response and the observation closing web exception handler stops the observation we've forgotten to attach an error to it
with this change we're attaching the error
If a user has extended HttpClientFactory and doesn't use the new SslConfigurer, the original protected methods need to be there. Those methods are marked as deprecated.
* Generated certificate with domain name (required for 'trustedX509Certificates')
* Injected SslProperties in GRPC components to configure SslContext (ideally we want to reuse, not replicate, SCG context)