summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-08-16 16:27:52 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-08-16 16:27:52 +0200
commitabdf058cd24ef96beb0b32219d1fea7ff604a6f8 (patch)
tree6803e86e4d1dfbcb11a00cce1d11fd6b49bf5cd4 /container-core
parent74d0fba5384ae051ed0badce29710a29bffa063d (diff)
Add connection factory for HTTP/2 over clear text
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java
index 92d2cc5d1cd..83a69d283e0 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java
@@ -8,7 +8,8 @@ import com.yahoo.jdisc.http.ssl.SslContextFactoryProvider;
import com.yahoo.security.tls.MixedMode;
import com.yahoo.security.tls.TransportSecurityUtils;
import org.eclipse.jetty.alpn.server.ALPNServerConnectionFactory;
-import org.eclipse.jetty.http2.parser.RateControl;
+import org.eclipse.jetty.http2.server.AbstractHTTP2ServerConnectionFactory;
+import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory;
import org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory;
import org.eclipse.jetty.server.ConnectionFactory;
import org.eclipse.jetty.server.DetectorConnectionFactory;
@@ -82,7 +83,7 @@ public class ConnectorFactory {
private List<ConnectionFactory> createConnectionFactories(Metric metric) {
if (!isSslEffectivelyEnabled(connectorConfig)) {
- return List.of(newHttp1ConnectionFactory());
+ return List.of(newHttp1ConnectionFactory(), newHttp2ClearTextConnectionFactory());
} else if (connectorConfig.ssl().enabled()) {
return connectionFactoriesForHttps(metric);
} else if (TransportSecurityUtils.isTransportSecurityEnabled()) {
@@ -96,7 +97,7 @@ public class ConnectorFactory {
throw new IllegalStateException();
}
} else {
- return List.of(newHttp1ConnectionFactory());
+ return List.of(newHttp1ConnectionFactory(), newHttp2ClearTextConnectionFactory());
}
}
@@ -163,11 +164,21 @@ public class ConnectorFactory {
private HTTP2ServerConnectionFactory newHttp2ConnectionFactory() {
HTTP2ServerConnectionFactory factory = new HTTP2ServerConnectionFactory(newHttpConfiguration());
+ setHttp2Config(factory);
+ return factory;
+ }
+
+ private HTTP2CServerConnectionFactory newHttp2ClearTextConnectionFactory() {
+ HTTP2CServerConnectionFactory factory = new HTTP2CServerConnectionFactory(newHttpConfiguration());
+ setHttp2Config(factory);
+ return factory;
+ }
+
+ private void setHttp2Config(AbstractHTTP2ServerConnectionFactory factory) {
factory.setStreamIdleTimeout(toMillis(connectorConfig.http2().streamIdleTimeout()));
factory.setMaxConcurrentStreams(connectorConfig.http2().maxConcurrentStreams());
factory.setInitialSessionRecvWindow(1 << 24);
factory.setInitialStreamRecvWindow(1 << 20);
- return factory;
}
private SslConnectionFactory newSslConnectionFactory(Metric metric, ConnectionFactory wrappedFactory) {