Class GatewayAutoConfiguration
java.lang.Object
org.springframework.cloud.gateway.config.GatewayAutoConfiguration
@Configuration(proxyBeanMethods=false)
@ConditionalOnProperty(name="spring.cloud.gateway.server.webflux.enabled",
matchIfMissing=true)
@EnableConfigurationProperties
@AutoConfigureBefore({org.springframework.boot.webflux.autoconfigure.HttpHandlerAutoConfiguration.class,org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration.class})
@AutoConfigureAfter({GatewayReactiveLoadBalancerClientAutoConfiguration.class,GatewayClassPathWarningAutoConfiguration.class})
@ConditionalOnClass(org.springframework.web.reactive.DispatcherHandler.class)
public class GatewayAutoConfiguration
extends Object
- Author:
- Spencer Gibb, Ziemowit Stolarczyk, Mete Alpaslan Katırcıoğlu, Alberto C. Ríos, Olga Maciaszek-Sharma, FuYiNan Guo
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static classprotected static classprotected static class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncachedCompositeRouteLocator(List<RouteLocator> routeLocators) cacheRequestBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer) corsGatewayFilterApplicationListener(GlobalCorsProperties globalCorsProperties, RoutePredicateHandlerMapping routePredicateHandlerMapping, RouteLocator routeLocator) filteringWebHandler(List<GlobalFilter> globalFilters, GatewayProperties properties) forwardedHeadersFilter(org.springframework.core.env.Environment env, org.springframework.boot.web.server.autoconfigure.ServerProperties serverProperties, GatewayProperties properties) forwardRoutingFilter(org.springframework.beans.factory.ObjectProvider<org.springframework.web.reactive.DispatcherHandler> dispatcherHandler) gatewayConfigurationService(org.springframework.beans.factory.BeanFactory beanFactory, org.springframework.beans.factory.ObjectProvider<org.springframework.core.convert.ConversionService> conversionService, org.springframework.beans.factory.ObjectProvider<org.springframework.validation.Validator> validator) grpcSslConfigurer(HttpClientProperties properties, org.springframework.boot.ssl.SslBundles bundles) hostRoutePredicateFactory(org.springframework.core.env.Environment env) jsonToGRPCFilterFactory(GrpcSslConfigurer gRPCSSLContext, org.springframework.core.io.ResourceLoader resourceLoader) modifyRequestBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer) modifyResponseBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer, Set<MessageBodyDecoder> bodyDecoders, Set<MessageBodyEncoder> bodyEncoders) pathRoutePredicateFactory(org.springframework.boot.webflux.autoconfigure.WebFluxProperties webFluxProperties) propertiesRouteDefinitionLocator(GatewayProperties properties) readBodyPredicateFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer) removeJsonAttributesResponseBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer, Set<MessageBodyDecoder> bodyDecoders, Set<MessageBodyEncoder> bodyEncoders) requestRateLimiterGatewayFilterFactory(RateLimiter rateLimiter, KeyResolver resolver) routeDefinitionLocator(List<RouteDefinitionLocator> routeDefinitionLocators) routeDefinitionRouteLocator(GatewayProperties properties, List<GatewayFilterFactory> gatewayFilters, List<RoutePredicateFactory> predicates, RouteDefinitionLocator routeDefinitionLocator, ConfigurationService configurationService) routeLocatorBuilder(org.springframework.context.ConfigurableApplicationContext context) routePredicateHandlerMapping(FilteringWebHandler webHandler, RouteLocator routeLocator, GlobalCorsProperties globalCorsProperties, org.springframework.core.env.Environment environment) routeRefreshListener(org.springframework.context.ApplicationEventPublisher publisher) versionRoutePredicateFactory(@Nullable org.springframework.web.reactive.accept.ApiVersionStrategy apiVersionStrategy) websocketRoutingFilter(org.springframework.web.reactive.socket.client.WebSocketClient webSocketClient, org.springframework.web.reactive.socket.server.WebSocketService webSocketService, org.springframework.beans.factory.ObjectProvider<List<HttpHeadersFilter>> headersFilters) org.springframework.web.reactive.socket.server.WebSocketServicewebSocketService(org.springframework.web.reactive.socket.server.RequestUpgradeStrategy requestUpgradeStrategy) weightCalculatorWebFilter(ConfigurationService configurationService, org.springframework.beans.factory.ObjectProvider<RouteLocator> routeLocator) xForwardedHeadersFilter(GatewayProperties properties)
-
Constructor Details
-
GatewayAutoConfiguration
public GatewayAutoConfiguration()
-
-
Method Details
-
stringToZonedDateTimeConverter
-
keyValueConverter
-
routeLocatorBuilder
@Bean public RouteLocatorBuilder routeLocatorBuilder(org.springframework.context.ConfigurableApplicationContext context) -
propertiesRouteDefinitionLocator
@Bean @ConditionalOnMissingBean public PropertiesRouteDefinitionLocator propertiesRouteDefinitionLocator(GatewayProperties properties) -
inMemoryRouteDefinitionRepository
@Bean @ConditionalOnMissingBean(RouteDefinitionRepository.class) public InMemoryRouteDefinitionRepository inMemoryRouteDefinitionRepository() -
routeDefinitionLocator
@Bean @Primary public RouteDefinitionLocator routeDefinitionLocator(List<RouteDefinitionLocator> routeDefinitionLocators) -
gatewayConfigurationService
@Bean public ConfigurationService gatewayConfigurationService(org.springframework.beans.factory.BeanFactory beanFactory, @Qualifier("webFluxConversionService") org.springframework.beans.factory.ObjectProvider<org.springframework.core.convert.ConversionService> conversionService, org.springframework.beans.factory.ObjectProvider<org.springframework.validation.Validator> validator) -
routeDefinitionRouteLocator
@Bean public RouteLocator routeDefinitionRouteLocator(GatewayProperties properties, List<GatewayFilterFactory> gatewayFilters, List<RoutePredicateFactory> predicates, RouteDefinitionLocator routeDefinitionLocator, ConfigurationService configurationService) -
cachedCompositeRouteLocator
@Bean @Primary @ConditionalOnMissingBean(name="cachedCompositeRouteLocator") public RouteLocator cachedCompositeRouteLocator(List<RouteLocator> routeLocators) -
routeRefreshListener
@Bean @ConditionalOnClass(name="org.springframework.cloud.client.discovery.event.HeartbeatMonitor") @ConditionalOnProperty(prefix="spring.cloud.gateway.server.webflux", name="route-refresh-listener.enabled", matchIfMissing=true) public RouteRefreshListener routeRefreshListener(org.springframework.context.ApplicationEventPublisher publisher) -
filteringWebHandler
@Bean @ConditionalOnMissingBean public FilteringWebHandler filteringWebHandler(List<GlobalFilter> globalFilters, GatewayProperties properties) -
globalCorsProperties
-
corsGatewayFilterApplicationListener
@Bean @ConditionalOnProperty(name="spring.cloud.gateway.server.webflux.globalcors.enabled", matchIfMissing=true) public CorsGatewayFilterApplicationListener corsGatewayFilterApplicationListener(GlobalCorsProperties globalCorsProperties, RoutePredicateHandlerMapping routePredicateHandlerMapping, RouteLocator routeLocator) -
routePredicateHandlerMapping
@Bean @ConditionalOnMissingBean public RoutePredicateHandlerMapping routePredicateHandlerMapping(FilteringWebHandler webHandler, RouteLocator routeLocator, GlobalCorsProperties globalCorsProperties, org.springframework.core.env.Environment environment) -
gatewayProperties
-
secureHeadersProperties
-
versionProperties
-
forwardedHeadersFilter
@Bean @Conditional(TrustedProxies.ForwardedTrustedProxiesCondition.class) public ForwardedHeadersFilter forwardedHeadersFilter(org.springframework.core.env.Environment env, org.springframework.boot.web.server.autoconfigure.ServerProperties serverProperties, GatewayProperties properties) -
removeHopByHopHeadersFilter
-
xForwardedHeadersFilter
@Bean @Conditional(TrustedProxies.XForwardedTrustedProxiesCondition.class) public XForwardedHeadersFilter xForwardedHeadersFilter(GatewayProperties properties) -
gRPCRequestHeadersFilter
@Bean @ConditionalOnProperty(name="server.http2.enabled", matchIfMissing=true) public GRPCRequestHeadersFilter gRPCRequestHeadersFilter() -
gRPCResponseHeadersFilter
@Bean @ConditionalOnProperty(name="server.http2.enabled", matchIfMissing=true) public GRPCResponseHeadersFilter gRPCResponseHeadersFilter() -
jsonToGRPCFilterFactory
@Bean @ConditionalOnEnabledFilter @ConditionalOnProperty(name="server.http2.enabled", matchIfMissing=true) @ConditionalOnClass(name="io.grpc.Channel") public JsonToGrpcGatewayFilterFactory jsonToGRPCFilterFactory(GrpcSslConfigurer gRPCSSLContext, org.springframework.core.io.ResourceLoader resourceLoader) -
grpcSslConfigurer
@Bean @ConditionalOnEnabledFilter(JsonToGrpcGatewayFilterFactory.class) @ConditionalOnMissingBean(GrpcSslConfigurer.class) @ConditionalOnClass(name="io.grpc.Channel") public GrpcSslConfigurer grpcSslConfigurer(HttpClientProperties properties, org.springframework.boot.ssl.SslBundles bundles) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException -
transferEncodingNormalizationHeadersFilter
@Bean public TransferEncodingNormalizationHeadersFilter transferEncodingNormalizationHeadersFilter() -
adaptCachedBodyGlobalFilter
@Bean @ConditionalOnEnabledGlobalFilter public AdaptCachedBodyGlobalFilter adaptCachedBodyGlobalFilter() -
removeCachedBodyFilter
-
routeToRequestUrlFilter
-
forwardRoutingFilter
@Bean @ConditionalOnEnabledGlobalFilter public ForwardRoutingFilter forwardRoutingFilter(org.springframework.beans.factory.ObjectProvider<org.springframework.web.reactive.DispatcherHandler> dispatcherHandler) -
forwardPathFilter
-
webSocketService
@Bean @ConditionalOnEnabledGlobalFilter(WebsocketRoutingFilter.class) public org.springframework.web.reactive.socket.server.WebSocketService webSocketService(org.springframework.web.reactive.socket.server.RequestUpgradeStrategy requestUpgradeStrategy) -
websocketRoutingFilter
@Bean @ConditionalOnEnabledGlobalFilter public WebsocketRoutingFilter websocketRoutingFilter(org.springframework.web.reactive.socket.client.WebSocketClient webSocketClient, org.springframework.web.reactive.socket.server.WebSocketService webSocketService, org.springframework.beans.factory.ObjectProvider<List<HttpHeadersFilter>> headersFilters) -
weightCalculatorWebFilter
@Bean @ConditionalOnEnabledPredicate(WeightRoutePredicateFactory.class) public WeightCalculatorWebFilter weightCalculatorWebFilter(ConfigurationService configurationService, org.springframework.beans.factory.ObjectProvider<RouteLocator> routeLocator) -
afterRoutePredicateFactory
-
beforeRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public BeforeRoutePredicateFactory beforeRoutePredicateFactory() -
betweenRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public BetweenRoutePredicateFactory betweenRoutePredicateFactory() -
cookieRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public CookieRoutePredicateFactory cookieRoutePredicateFactory() -
headerRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public HeaderRoutePredicateFactory headerRoutePredicateFactory() -
hostRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public HostRoutePredicateFactory hostRoutePredicateFactory(org.springframework.core.env.Environment env) -
methodRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public MethodRoutePredicateFactory methodRoutePredicateFactory() -
pathRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public PathRoutePredicateFactory pathRoutePredicateFactory(org.springframework.boot.webflux.autoconfigure.WebFluxProperties webFluxProperties) -
queryRoutePredicateFactory
-
readBodyPredicateFactory
@Bean @ConditionalOnEnabledPredicate public ReadBodyRoutePredicateFactory readBodyPredicateFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer) -
remoteAddrRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public RemoteAddrRoutePredicateFactory remoteAddrRoutePredicateFactory() -
versionRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public VersionRoutePredicateFactory versionRoutePredicateFactory(@Qualifier("webFluxApiVersionStrategy") @Nullable org.springframework.web.reactive.accept.ApiVersionStrategy apiVersionStrategy) -
xForwardedRemoteAddrRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public XForwardedRemoteAddrRoutePredicateFactory xForwardedRemoteAddrRoutePredicateFactory() -
weightRoutePredicateFactory
@Bean @DependsOn("weightCalculatorWebFilter") @ConditionalOnEnabledPredicate public WeightRoutePredicateFactory weightRoutePredicateFactory() -
cloudFoundryRouteServiceRoutePredicateFactory
@Bean @ConditionalOnEnabledPredicate public CloudFoundryRouteServiceRoutePredicateFactory cloudFoundryRouteServiceRoutePredicateFactory() -
addRequestHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public AddRequestHeaderGatewayFilterFactory addRequestHeaderGatewayFilterFactory() -
addRequestHeadersIfNotPresentGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public AddRequestHeadersIfNotPresentGatewayFilterFactory addRequestHeadersIfNotPresentGatewayFilterFactory() -
mapRequestHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public MapRequestHeaderGatewayFilterFactory mapRequestHeaderGatewayFilterFactory() -
addRequestParameterGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public AddRequestParameterGatewayFilterFactory addRequestParameterGatewayFilterFactory() -
addResponseHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public AddResponseHeaderGatewayFilterFactory addResponseHeaderGatewayFilterFactory() -
modifyRequestBodyGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public ModifyRequestBodyGatewayFilterFactory modifyRequestBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer) -
dedupeResponseHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public DedupeResponseHeaderGatewayFilterFactory dedupeResponseHeaderGatewayFilterFactory() -
modifyResponseBodyGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public ModifyResponseBodyGatewayFilterFactory modifyResponseBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer, Set<MessageBodyDecoder> bodyDecoders, Set<MessageBodyEncoder> bodyEncoders) -
cacheRequestBodyGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public CacheRequestBodyGatewayFilterFactory cacheRequestBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer) -
prefixPathGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public PrefixPathGatewayFilterFactory prefixPathGatewayFilterFactory() -
preserveHostHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public PreserveHostHeaderGatewayFilterFactory preserveHostHeaderGatewayFilterFactory() -
redirectToGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RedirectToGatewayFilterFactory redirectToGatewayFilterFactory() -
removeJsonAttributesResponseBodyGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RemoveJsonAttributesResponseBodyGatewayFilterFactory removeJsonAttributesResponseBodyGatewayFilterFactory(org.springframework.http.codec.ServerCodecConfigurer codecConfigurer, Set<MessageBodyDecoder> bodyDecoders, Set<MessageBodyEncoder> bodyEncoders) -
removeRequestHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RemoveRequestHeaderGatewayFilterFactory removeRequestHeaderGatewayFilterFactory() -
removeRequestParameterGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RemoveRequestParameterGatewayFilterFactory removeRequestParameterGatewayFilterFactory() -
removeResponseHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RemoveResponseHeaderGatewayFilterFactory removeResponseHeaderGatewayFilterFactory() -
principalNameKeyResolver
@Bean(name="principalNameKeyResolver") @ConditionalOnBean(RateLimiter.class) @ConditionalOnMissingBean(KeyResolver.class) @ConditionalOnEnabledFilter(RequestRateLimiterGatewayFilterFactory.class) public PrincipalNameKeyResolver principalNameKeyResolver() -
requestRateLimiterGatewayFilterFactory
@Bean @ConditionalOnBean({RateLimiter.class,KeyResolver.class}) @ConditionalOnEnabledFilter public RequestRateLimiterGatewayFilterFactory requestRateLimiterGatewayFilterFactory(RateLimiter rateLimiter, KeyResolver resolver) -
rewritePathGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RewritePathGatewayFilterFactory rewritePathGatewayFilterFactory() -
retryGatewayFilterFactory
-
setPathGatewayFilterFactory
-
secureHeadersGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SecureHeadersGatewayFilterFactory secureHeadersGatewayFilterFactory(SecureHeadersProperties properties) -
setRequestHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SetRequestHeaderGatewayFilterFactory setRequestHeaderGatewayFilterFactory() -
setRequestHostHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SetRequestHostHeaderGatewayFilterFactory setRequestHostHeaderGatewayFilterFactory() -
setResponseHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SetResponseHeaderGatewayFilterFactory setResponseHeaderGatewayFilterFactory() -
rewriteResponseHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RewriteResponseHeaderGatewayFilterFactory rewriteResponseHeaderGatewayFilterFactory() -
rewriteLocationResponseHeaderGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RewriteLocationResponseHeaderGatewayFilterFactory rewriteLocationResponseHeaderGatewayFilterFactory() -
setStatusGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SetStatusGatewayFilterFactory setStatusGatewayFilterFactory() -
saveSessionGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SaveSessionGatewayFilterFactory saveSessionGatewayFilterFactory() -
stripPrefixGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public StripPrefixGatewayFilterFactory stripPrefixGatewayFilterFactory() -
requestHeaderToRequestUriGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RequestHeaderToRequestUriGatewayFilterFactory requestHeaderToRequestUriGatewayFilterFactory() -
setRequestUriGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public SetRequestUriGatewayFilterFactory setRequestUriGatewayFilterFactory() -
requestSizeGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RequestSizeGatewayFilterFactory requestSizeGatewayFilterFactory() -
requestHeaderSizeGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RequestHeaderSizeGatewayFilterFactory requestHeaderSizeGatewayFilterFactory() -
rewriteRequestParameterGatewayFilterFactory
@Bean @ConditionalOnEnabledFilter public RewriteRequestParameterGatewayFilterFactory rewriteRequestParameterGatewayFilterFactory() -
gzipMessageBodyResolver
-