diff --git a/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java b/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java
index 04c22b5d286b..ff9b5926f729 100644
--- a/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java
+++ b/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java
@@ -16,6 +16,7 @@
import com.google.inject.Inject;
import io.airlift.concurrent.ThreadPoolExecutorMBean;
import io.airlift.http.client.HttpClient;
+import io.airlift.http.client.HttpClientConfig;
import io.airlift.node.NodeInfo;
import io.airlift.units.DataSize;
import io.airlift.units.Duration;
@@ -63,6 +64,7 @@ public DirectExchangeClientFactory(
FeaturesConfig featuresConfig,
DirectExchangeClientConfig config,
@ForExchange HttpClient httpClient,
+ @ForExchange HttpClientConfig httpClientConfig,
@ForExchange ScheduledExecutorService scheduler,
ExchangeManagerRegistry exchangeManagerRegistry)
{
@@ -72,6 +74,7 @@ public DirectExchangeClientFactory(
config.getMaxBufferSize(),
config.getDeduplicationBufferSize(),
config.getMaxResponseSize(),
+ httpClientConfig.getMaxContentLength(),
config.getConcurrentRequestMultiplier(),
config.getMaxErrorDuration(),
config.isAcknowledgePages(),
@@ -87,6 +90,7 @@ public DirectExchangeClientFactory(
DataSize maxBufferedBytes,
DataSize deduplicationBufferSize,
DataSize maxResponseSize,
+ DataSize maxClientResponseSize,
int concurrentRequestMultiplier,
Duration maxErrorDuration,
boolean acknowledgePages,
@@ -107,7 +111,7 @@ public DirectExchangeClientFactory(
// Use only 0.75 of the maxResponseSize to leave room for additional bytes from the encoding
// TODO figure out a better way to compute the size of data that will be transferred over the network
requireNonNull(maxResponseSize, "maxResponseSize is null");
- long maxResponseSizeBytes = (long) (Math.min(httpClient.getMaxContentLength(), maxResponseSize.toBytes()) * 0.75);
+ long maxResponseSizeBytes = (long) (Math.min(maxClientResponseSize.toBytes(), maxResponseSize.toBytes()) * 0.75);
this.maxResponseSize = DataSize.ofBytes(maxResponseSizeBytes);
this.scheduler = requireNonNull(scheduler, "scheduler is null");
diff --git a/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java b/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java
index cd34a47ed0a7..2225936cc86b 100644
--- a/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java
+++ b/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java
@@ -44,6 +44,7 @@
import static io.airlift.configuration.ConfigBinder.configBinder;
import static io.airlift.configuration.ConfigurationAwareModule.combine;
import static io.airlift.http.server.HttpServer.ClientCertificate.REQUESTED;
+import static io.airlift.http.server.HttpServerConfig.ProcessForwardedMode.ACCEPT;
import static io.airlift.jaxrs.JaxrsBinder.jaxrsBinder;
import static io.trino.server.security.ResourceSecurityBinder.resourceSecurityBinder;
import static java.util.Locale.ENGLISH;
@@ -139,7 +140,7 @@ private void insecureHttpAuthenticationDefaults()
HttpServerConfig httpServerConfig = buildConfigObject(HttpServerConfig.class);
SecurityConfig securityConfig = buildConfigObject(SecurityConfig.class);
// if secure https authentication is enabled, disable insecure authentication over http
- if ((httpServerConfig.isHttpsEnabled() || httpServerConfig.isProcessForwarded()) &&
+ if ((httpServerConfig.isHttpsEnabled() || httpServerConfig.getProcessForwarded() == ACCEPT) &&
!securityConfig.getAuthenticationTypes().equals(ImmutableList.of("insecure"))) {
install(binder -> configBinder(binder).bindConfigDefaults(SecurityConfig.class, config -> config.setInsecureAuthenticationOverHttpAllowed(false)));
}
diff --git a/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java b/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java
index 236485941f9e..c3f13e5f3716 100644
--- a/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java
+++ b/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java
@@ -18,6 +18,7 @@
import com.google.common.cache.LoadingCache;
import com.google.common.collect.ImmutableList;
import io.airlift.http.client.HttpClient;
+import io.airlift.http.client.HttpClientConfig;
import io.airlift.http.client.testing.TestingHttpClient;
import io.airlift.node.NodeInfo;
import io.airlift.tracing.Tracing;
@@ -95,6 +96,7 @@ public void setUp()
new FeaturesConfig(),
new DirectExchangeClientConfig(),
httpClient,
+ new HttpClientConfig(),
executor,
new ExchangeManagerRegistry(OpenTelemetry.noop(), Tracing.noopTracer()));
orderingCompiler = new OrderingCompiler(new TypeOperators());
diff --git a/pom.xml b/pom.xml
index a8898933e4a6..b8ce5081e093 100644
--- a/pom.xml
+++ b/pom.xml
@@ -182,7 +182,7 @@
2.7.7-1
3.0.0
- 252
+ 254
2.9.6
4.13.1
1.11.3
diff --git a/testing/trino-testing/pom.xml b/testing/trino-testing/pom.xml
index ebb374918c16..6312b1cd8431 100644
--- a/testing/trino-testing/pom.xml
+++ b/testing/trino-testing/pom.xml
@@ -204,7 +204,7 @@
org.eclipse.jetty
jetty-server
- 12.0.11
+ 12.0.12