gitextract_tnrhk04n/ ├── .github/ │ ├── CODEOWNERS │ ├── dependabot.yml │ └── workflows/ │ ├── benchmark.yml │ ├── branch_snapshot.yml │ ├── gradle-wrapper-validation.yml │ ├── pr.yml │ ├── release.yml │ ├── snapshot.yml │ └── stale.yml ├── .gitignore ├── .netflixoss ├── CHANGELOG.md ├── LICENSE ├── OSSMETADATA ├── README.md ├── build.gradle ├── codequality/ │ └── checkstyle.xml ├── gradle/ │ └── wrapper/ │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── settings.gradle ├── zuul-core/ │ ├── build.gradle │ └── src/ │ ├── jmh/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── zuul/ │ │ └── message/ │ │ └── HeadersBenchmark.java │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ ├── config/ │ │ │ ├── DynamicIntegerSetProperty.java │ │ │ └── PatternListStringProperty.java │ │ ├── netty/ │ │ │ └── common/ │ │ │ ├── AbstrHttpConnectionExpiryHandler.java │ │ │ ├── ByteBufUtil.java │ │ │ ├── CategorizedThreadFactory.java │ │ │ ├── CloseOnIdleStateHandler.java │ │ │ ├── ConnectionCloseChannelAttributes.java │ │ │ ├── ConnectionCloseType.java │ │ │ ├── Http1ConnectionCloseHandler.java │ │ │ ├── Http1ConnectionExpiryHandler.java │ │ │ ├── Http2ConnectionCloseHandler.java │ │ │ ├── Http2ConnectionExpiryHandler.java │ │ │ ├── HttpChannelFlags.java │ │ │ ├── HttpClientLifecycleChannelHandler.java │ │ │ ├── HttpLifecycleChannelHandler.java │ │ │ ├── HttpRequestReadTimeoutEvent.java │ │ │ ├── HttpRequestReadTimeoutHandler.java │ │ │ ├── HttpServerLifecycleChannelHandler.java │ │ │ ├── RequestResponseCompleteEvent.java │ │ │ ├── SourceAddressChannelHandler.java │ │ │ ├── SslExceptionsHandler.java │ │ │ ├── SwallowSomeHttp2ExceptionsHandler.java │ │ │ ├── accesslog/ │ │ │ │ ├── AccessLogChannelHandler.java │ │ │ │ └── AccessLogPublisher.java │ │ │ ├── channel/ │ │ │ │ └── config/ │ │ │ │ ├── ChannelConfig.java │ │ │ │ ├── ChannelConfigKey.java │ │ │ │ ├── ChannelConfigValue.java │ │ │ │ └── CommonChannelConfigKeys.java │ │ │ ├── http2/ │ │ │ │ └── DynamicHttp2FrameLogger.java │ │ │ ├── metrics/ │ │ │ │ ├── EventLoopGroupMetrics.java │ │ │ │ ├── EventLoopMetrics.java │ │ │ │ ├── Http2MetricsChannelHandlers.java │ │ │ │ ├── HttpBodySizeRecordingChannelHandler.java │ │ │ │ ├── HttpMetricsChannelHandler.java │ │ │ │ ├── InstrumentedResourceLeakDetector.java │ │ │ │ └── PerEventLoopMetricsChannelHandler.java │ │ │ ├── proxyprotocol/ │ │ │ │ ├── ElbProxyProtocolChannelHandler.java │ │ │ │ ├── HAProxyMessageChannelHandler.java │ │ │ │ └── StripUntrustedProxyHeadersHandler.java │ │ │ ├── ssl/ │ │ │ │ ├── ServerSslConfig.java │ │ │ │ └── SslHandshakeInfo.java │ │ │ ├── status/ │ │ │ │ └── ServerStatusManager.java │ │ │ └── throttle/ │ │ │ ├── MaxInboundConnectionsHandler.java │ │ │ ├── RejectionType.java │ │ │ ├── RejectionUtils.java │ │ │ └── RequestRejectedEvent.java │ │ └── zuul/ │ │ ├── Attrs.java │ │ ├── BasicFilterUsageNotifier.java │ │ ├── BasicRequestCompleteHandler.java │ │ ├── DefaultFilterFactory.java │ │ ├── DynamicFilterLoader.java │ │ ├── ExecutionStatus.java │ │ ├── Filter.java │ │ ├── FilterCategory.java │ │ ├── FilterConstraint.java │ │ ├── FilterFactory.java │ │ ├── FilterFileManager.java │ │ ├── FilterLoader.java │ │ ├── FilterUsageNotifier.java │ │ ├── RequestCompleteHandler.java │ │ ├── StaticFilterLoader.java │ │ ├── ZuulApplicationInfo.java │ │ ├── constants/ │ │ │ ├── ZuulConstants.java │ │ │ └── ZuulHeaders.java │ │ ├── context/ │ │ │ ├── CommonContextKeys.java │ │ │ ├── Debug.java │ │ │ ├── SessionCleaner.java │ │ │ ├── SessionContext.java │ │ │ ├── SessionContextDecorator.java │ │ │ ├── SessionContextFactory.java │ │ │ └── ZuulSessionContextDecorator.java │ │ ├── exception/ │ │ │ ├── ErrorType.java │ │ │ ├── OutboundErrorType.java │ │ │ ├── OutboundException.java │ │ │ ├── RequestExpiredException.java │ │ │ ├── ZuulException.java │ │ │ └── ZuulFilterConcurrencyExceededException.java │ │ ├── filters/ │ │ │ ├── BaseFilter.java │ │ │ ├── BaseSyncFilter.java │ │ │ ├── Endpoint.java │ │ │ ├── FilterError.java │ │ │ ├── FilterRegistry.java │ │ │ ├── FilterSyncType.java │ │ │ ├── FilterType.java │ │ │ ├── MutableFilterRegistry.java │ │ │ ├── ShouldFilter.java │ │ │ ├── SyncZuulFilter.java │ │ │ ├── SyncZuulFilterAdapter.java │ │ │ ├── ZuulFilter.java │ │ │ ├── common/ │ │ │ │ ├── GZipResponseFilter.java │ │ │ │ └── SurgicalDebugFilter.java │ │ │ ├── endpoint/ │ │ │ │ ├── EndpointLifecycle.java │ │ │ │ ├── MissingEndpointHandlingFilter.java │ │ │ │ └── ProxyEndpoint.java │ │ │ ├── http/ │ │ │ │ ├── HttpInboundFilter.java │ │ │ │ ├── HttpInboundSyncFilter.java │ │ │ │ ├── HttpOutboundFilter.java │ │ │ │ ├── HttpOutboundSyncFilter.java │ │ │ │ └── HttpSyncEndpoint.java │ │ │ └── passport/ │ │ │ ├── InboundPassportStampingFilter.java │ │ │ ├── OutboundPassportStampingFilter.java │ │ │ └── PassportStampingFilter.java │ │ ├── logging/ │ │ │ └── Http2FrameLoggingPerClientIpHandler.java │ │ ├── message/ │ │ │ ├── Header.java │ │ │ ├── HeaderName.java │ │ │ ├── Headers.java │ │ │ ├── ZuulMessage.java │ │ │ ├── ZuulMessageImpl.java │ │ │ ├── http/ │ │ │ │ ├── Cookies.java │ │ │ │ ├── HttpHeaderNames.java │ │ │ │ ├── HttpHeaderNamesCache.java │ │ │ │ ├── HttpQueryParams.java │ │ │ │ ├── HttpRequestInfo.java │ │ │ │ ├── HttpRequestMessage.java │ │ │ │ ├── HttpRequestMessageImpl.java │ │ │ │ ├── HttpResponseInfo.java │ │ │ │ ├── HttpResponseMessage.java │ │ │ │ └── HttpResponseMessageImpl.java │ │ │ └── util/ │ │ │ └── HttpRequestBuilder.java │ │ ├── metrics/ │ │ │ ├── OriginStats.java │ │ │ └── OriginStatsFactory.java │ │ ├── monitoring/ │ │ │ ├── ConnCounter.java │ │ │ ├── ConnTimer.java │ │ │ ├── MonitoringHelper.java │ │ │ ├── Tracer.java │ │ │ └── TracerFactory.java │ │ ├── netty/ │ │ │ ├── ChannelUtils.java │ │ │ ├── NettyRequestAttemptFactory.java │ │ │ ├── RequestCancelledEvent.java │ │ │ ├── SpectatorUtils.java │ │ │ ├── connectionpool/ │ │ │ │ ├── BasicRequestStat.java │ │ │ │ ├── ClientChannelManager.java │ │ │ │ ├── ClientTimeoutHandler.java │ │ │ │ ├── ConnectionPoolConfig.java │ │ │ │ ├── ConnectionPoolConfigImpl.java │ │ │ │ ├── ConnectionPoolHandler.java │ │ │ │ ├── ConnectionPoolMetrics.java │ │ │ │ ├── DefaultClientChannelManager.java │ │ │ │ ├── DefaultOriginChannelInitializer.java │ │ │ │ ├── IConnectionPool.java │ │ │ │ ├── NettyClientConnectionFactory.java │ │ │ │ ├── OriginChannelInitializer.java │ │ │ │ ├── OriginConnectException.java │ │ │ │ ├── PerServerConnectionPool.java │ │ │ │ ├── PooledConnection.java │ │ │ │ ├── PooledConnectionFactory.java │ │ │ │ ├── RequestStat.java │ │ │ │ └── ZuulNettyExceptionMapper.java │ │ │ ├── filter/ │ │ │ │ ├── BaseZuulFilterRunner.java │ │ │ │ ├── EventExecutorScheduler.java │ │ │ │ ├── FilterConstraints.java │ │ │ │ ├── FilterRunner.java │ │ │ │ ├── ZuulEndPointRunner.java │ │ │ │ ├── ZuulFilterChainHandler.java │ │ │ │ └── ZuulFilterChainRunner.java │ │ │ ├── insights/ │ │ │ │ ├── PassportLoggingHandler.java │ │ │ │ ├── PassportStateHttpClientHandler.java │ │ │ │ ├── PassportStateHttpServerHandler.java │ │ │ │ ├── PassportStateListener.java │ │ │ │ ├── PassportStateOriginHandler.java │ │ │ │ └── ServerStateHandler.java │ │ │ ├── ratelimiting/ │ │ │ │ └── NullChannelHandlerProvider.java │ │ │ ├── server/ │ │ │ │ ├── BaseServerStartup.java │ │ │ │ ├── BaseZuulChannelInitializer.java │ │ │ │ ├── ClientConnectionsShutdown.java │ │ │ │ ├── ClientRequestReceiver.java │ │ │ │ ├── ClientResponseWriter.java │ │ │ │ ├── DefaultEventLoopConfig.java │ │ │ │ ├── DirectMemoryMonitor.java │ │ │ │ ├── EventLoopConfig.java │ │ │ │ ├── Http1MutualSslChannelInitializer.java │ │ │ │ ├── ListenerSpec.java │ │ │ │ ├── MethodBinding.java │ │ │ │ ├── NamedSocketAddress.java │ │ │ │ ├── OriginResponseReceiver.java │ │ │ │ ├── Server.java │ │ │ │ ├── ServerTimeout.java │ │ │ │ ├── SocketAddressProperty.java │ │ │ │ ├── ZuulDependencyKeys.java │ │ │ │ ├── ZuulServerChannelInitializer.java │ │ │ │ ├── http2/ │ │ │ │ │ ├── DummyChannelHandler.java │ │ │ │ │ ├── Http2Configuration.java │ │ │ │ │ ├── Http2ConnectionErrorHandler.java │ │ │ │ │ ├── Http2ContentLengthEnforcingHandler.java │ │ │ │ │ ├── Http2OrHttpHandler.java │ │ │ │ │ ├── Http2ResetFrameHandler.java │ │ │ │ │ ├── Http2SslChannelInitializer.java │ │ │ │ │ ├── Http2StreamErrorHandler.java │ │ │ │ │ ├── Http2StreamHeaderCleaner.java │ │ │ │ │ └── Http2StreamInitializer.java │ │ │ │ ├── psk/ │ │ │ │ │ ├── ClientPSKIdentityInfo.java │ │ │ │ │ ├── ExternalTlsPskProvider.java │ │ │ │ │ ├── PskCreationFailureException.java │ │ │ │ │ ├── TlsPskDecoder.java │ │ │ │ │ ├── TlsPskHandler.java │ │ │ │ │ ├── TlsPskServerProtocol.java │ │ │ │ │ ├── TlsPskUtils.java │ │ │ │ │ └── ZuulPskServer.java │ │ │ │ ├── push/ │ │ │ │ │ ├── PushAuthHandler.java │ │ │ │ │ ├── PushChannelInitializer.java │ │ │ │ │ ├── PushClientProtocolHandler.java │ │ │ │ │ ├── PushConnection.java │ │ │ │ │ ├── PushConnectionRegistry.java │ │ │ │ │ ├── PushMessageFactory.java │ │ │ │ │ ├── PushMessageSender.java │ │ │ │ │ ├── PushMessageSenderInitializer.java │ │ │ │ │ ├── PushProtocol.java │ │ │ │ │ ├── PushRegistrationHandler.java │ │ │ │ │ └── PushUserAuth.java │ │ │ │ └── ssl/ │ │ │ │ └── SslHandshakeInfoHandler.java │ │ │ ├── ssl/ │ │ │ │ ├── BaseSslContextFactory.java │ │ │ │ ├── ClientSslContextFactory.java │ │ │ │ └── SslContextFactory.java │ │ │ └── timeouts/ │ │ │ ├── HttpHeadersTimeoutHandler.java │ │ │ └── OriginTimeoutManager.java │ │ ├── niws/ │ │ │ ├── RequestAttempt.java │ │ │ └── RequestAttempts.java │ │ ├── origins/ │ │ │ ├── BasicNettyOrigin.java │ │ │ ├── BasicNettyOriginManager.java │ │ │ ├── InstrumentedOrigin.java │ │ │ ├── NettyOrigin.java │ │ │ ├── Origin.java │ │ │ ├── OriginConcurrencyExceededException.java │ │ │ ├── OriginManager.java │ │ │ ├── OriginName.java │ │ │ └── OriginThrottledException.java │ │ ├── passport/ │ │ │ ├── CurrentPassport.java │ │ │ ├── PassportItem.java │ │ │ ├── PassportState.java │ │ │ └── StartAndEnd.java │ │ ├── plugins/ │ │ │ └── Tracer.java │ │ ├── stats/ │ │ │ ├── AmazonInfoHolder.java │ │ │ ├── BasicRequestMetricsPublisher.java │ │ │ ├── ErrorStatsData.java │ │ │ ├── ErrorStatsManager.java │ │ │ ├── NamedCountingMonitor.java │ │ │ ├── RequestMetricsPublisher.java │ │ │ ├── RouteStatusCodeMonitor.java │ │ │ ├── StatsManager.java │ │ │ ├── monitoring/ │ │ │ │ ├── Monitor.java │ │ │ │ ├── MonitorRegistry.java │ │ │ │ └── NamedCount.java │ │ │ └── status/ │ │ │ ├── StatusCategory.java │ │ │ ├── StatusCategoryGroup.java │ │ │ ├── StatusCategoryUtils.java │ │ │ ├── ZuulStatusCategory.java │ │ │ └── ZuulStatusCategoryGroup.java │ │ └── util/ │ │ ├── Gzipper.java │ │ ├── HttpUtils.java │ │ ├── JsonUtility.java │ │ ├── ProxyUtils.java │ │ └── VipUtils.java │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ ├── netty/ │ │ └── common/ │ │ ├── CloseOnIdleStateHandlerTest.java │ │ ├── HttpServerLifecycleChannelHandlerTest.java │ │ ├── SourceAddressChannelHandlerTest.java │ │ ├── metrics/ │ │ │ └── InstrumentedResourceLeakDetectorTest.java │ │ ├── proxyprotocol/ │ │ │ ├── ElbProxyProtocolChannelHandlerTest.java │ │ │ ├── HAProxyMessageChannelHandlerTest.java │ │ │ └── StripUntrustedProxyHeadersHandlerTest.java │ │ ├── ssl/ │ │ │ └── ServerSslConfigTest.java │ │ └── throttle/ │ │ └── MaxInboundConnectionsHandlerTest.java │ └── zuul/ │ ├── AttrsTest.java │ ├── DynamicFilterLoaderTest.java │ ├── StaticFilterLoaderTest.java │ ├── com/ │ │ └── netflix/ │ │ └── zuul/ │ │ └── netty/ │ │ └── server/ │ │ └── push/ │ │ └── PushConnectionTest.java │ ├── context/ │ │ ├── DebugTest.java │ │ └── SessionContextTest.java │ ├── filters/ │ │ ├── BaseFilterTest.java │ │ ├── common/ │ │ │ └── GZipResponseFilterTest.java │ │ └── endpoint/ │ │ └── ProxyEndpointTest.java │ ├── message/ │ │ ├── HeadersTest.java │ │ ├── ZuulMessageImplTest.java │ │ └── http/ │ │ ├── CookiesTest.java │ │ ├── HttpQueryParamsTest.java │ │ ├── HttpRequestMessageImplTest.java │ │ └── HttpResponseMessageImplTest.java │ ├── monitoring/ │ │ ├── ConnCounterTest.java │ │ └── ConnTimerTest.java │ ├── netty/ │ │ ├── NettyRequestAttemptFactoryTest.java │ │ ├── connectionpool/ │ │ │ ├── ClientTimeoutHandlerTest.java │ │ │ ├── ConnectionPoolConfigImplTest.java │ │ │ ├── ConnectionPoolMetricsTest.java │ │ │ ├── DefaultClientChannelManagerTest.java │ │ │ ├── PerServerConnectionPoolTest.java │ │ │ └── PooledConnectionTest.java │ │ ├── filter/ │ │ │ ├── BaseZuulFilterRunnerTest.java │ │ │ ├── EventExecutorSchedulerTest.java │ │ │ ├── FilterConstraintsTest.java │ │ │ ├── ZuulEndPointRunnerTest.java │ │ │ └── ZuulFilterChainRunnerTest.java │ │ ├── insights/ │ │ │ └── ServerStateHandlerTest.java │ │ ├── server/ │ │ │ ├── BaseZuulChannelInitializerTest.java │ │ │ ├── ClientConnectionsShutdownTest.java │ │ │ ├── ClientRequestReceiverTest.java │ │ │ ├── ClientResponseWriterTest.java │ │ │ ├── IoUringTest.java │ │ │ ├── OriginResponseReceiverTest.java │ │ │ ├── ServerTest.java │ │ │ ├── SocketAddressPropertyTest.java │ │ │ ├── http2/ │ │ │ │ ├── Http2ConnectionErrorHandlerTest.java │ │ │ │ ├── Http2ContentLengthEnforcingHandlerTest.java │ │ │ │ └── Http2OrHttpHandlerTest.java │ │ │ ├── push/ │ │ │ │ ├── PushAuthHandlerTest.java │ │ │ │ ├── PushConnectionRegistryTest.java │ │ │ │ ├── PushMessageSenderInitializerTest.java │ │ │ │ └── PushRegistrationHandlerTest.java │ │ │ └── ssl/ │ │ │ └── SslHandshakeInfoHandlerTest.java │ │ ├── ssl/ │ │ │ ├── BaseSslContextFactoryTest.java │ │ │ ├── ClientSslContextFactoryTest.java │ │ │ └── OpenSslTest.java │ │ └── timeouts/ │ │ ├── HttpHeadersTimeoutHandlerTest.java │ │ └── OriginTimeoutManagerTest.java │ ├── niws/ │ │ └── RequestAttemptTest.java │ ├── origins/ │ │ └── OriginNameTest.java │ ├── passport/ │ │ └── CurrentPassportTest.java │ ├── stats/ │ │ ├── ErrorStatsDataTest.java │ │ ├── ErrorStatsManagerTest.java │ │ ├── RouteStatusCodeMonitorTest.java │ │ ├── StatsManagerTest.java │ │ └── status/ │ │ └── ZuulStatusCategoryTest.java │ └── util/ │ ├── HttpUtilsTest.java │ ├── JsonUtilityTest.java │ └── VipUtilsTest.java ├── zuul-discovery/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── zuul/ │ │ ├── discovery/ │ │ │ ├── DiscoveryResult.java │ │ │ ├── DynamicServerResolver.java │ │ │ ├── NonDiscoveryServer.java │ │ │ ├── ResolverResult.java │ │ │ └── SimpleMetaInfo.java │ │ └── resolver/ │ │ ├── Resolver.java │ │ └── ResolverListener.java │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── zuul/ │ └── discovery/ │ ├── DiscoveryResultTest.java │ └── DynamicServerResolverTest.java ├── zuul-integration-test/ │ ├── build.gradle │ └── src/ │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ ├── netty/ │ │ │ └── common/ │ │ │ └── metrics/ │ │ │ └── CustomLeakDetector.java │ │ └── zuul/ │ │ └── integration/ │ │ ├── BaseIntegrationTest.java │ │ ├── MultiEventLoopIntegrationTest.java │ │ ├── SingleEventLoopIntegrationTest.java │ │ ├── ZuulServerExtension.java │ │ └── server/ │ │ ├── Bootstrap.java │ │ ├── HeaderNames.java │ │ ├── OriginServerList.java │ │ ├── ServerStartup.java │ │ ├── TestUtil.java │ │ └── filters/ │ │ ├── BodyUtil.java │ │ ├── CrossThreadBoundaryFilter.java │ │ ├── InboundRoutesFilter.java │ │ ├── NeedsBodyBufferedInboundFilter.java │ │ ├── NeedsBodyBufferedOutboundFilter.java │ │ ├── RequestHeaderFilter.java │ │ └── ResponseHeaderFilter.java │ └── resources/ │ └── log4j2-test.xml ├── zuul-processor/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── zuul/ │ │ │ └── filters/ │ │ │ └── processor/ │ │ │ └── FilterProcessor.java │ │ └── resources/ │ │ └── META-INF/ │ │ ├── gradle/ │ │ │ └── incremental.annotation.processors │ │ └── services/ │ │ └── javax.annotation.processing.Processor │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── zuul/ │ └── filters/ │ └── processor/ │ ├── FilterProcessorTest.java │ ├── TestFilter.java │ ├── TopLevelFilter.java │ ├── override/ │ │ ├── SubpackageFilter.java │ │ └── package-info.java │ └── subpackage/ │ └── OverrideFilter.java └── zuul-sample/ ├── build.gradle └── src/ └── main/ ├── java/ │ └── com/ │ └── netflix/ │ └── zuul/ │ └── sample/ │ ├── Bootstrap.java │ ├── SampleServerStartup.java │ ├── SampleService.java │ ├── filters/ │ │ ├── Debug.java │ │ ├── endpoint/ │ │ │ └── Healthcheck.java │ │ ├── inbound/ │ │ │ ├── DebugRequest.java │ │ │ ├── Routes.java │ │ │ └── SampleServiceFilter.java │ │ └── outbound/ │ │ └── ZuulResponseFilter.java │ └── push/ │ ├── SamplePushAuthHandler.java │ ├── SamplePushMessageSender.java │ ├── SamplePushMessageSenderInitializer.java │ ├── SamplePushUserAuth.java │ ├── SampleSSEPushChannelInitializer.java │ ├── SampleSSEPushClientProtocolHandler.java │ ├── SampleWebSocketPushChannelInitializer.java │ └── SampleWebSocketPushClientProtocolHandler.java └── resources/ ├── application-benchmark.properties ├── application-test.properties ├── application.properties ├── log4j2.xml └── ssl/ ├── client.cert ├── client.key ├── server.cert ├── server.key ├── truststore.jks └── truststore.key