* 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)
Since the ServiceLoader reads the files in a blocking way, Blockhound can detect these and cause java.lang.NoClassDefFoundError: Could not initialize class errors if the ServiceLoader is called from a static scope (static variable init or static block).