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