Commit c662c404 authored by Andy Wilkinson's avatar Andy Wilkinson

Do not enable H2C by default when using Reactor Netty

Previously, Reactor Netty was the only embedded server that enabled
H2C by default. This commit updates the factory to only enable HTTP/2
when SSL has also been configured, aligning it with Jetty, Tomcat,
and Undertow.

If H2C is required, it can be enabled using a NettyServerCustomizer:

@Bean
NettyServerCustomizer h2cCustomizer() {
    return (httpServer) ->
           httpServer.protocol(HttpProtocol.HTTP11, HttpProtocol.H2C);
}

Closes gh-17867
parent d5adbbb6
......@@ -161,13 +161,8 @@ public class NettyReactiveWebServerFactory extends AbstractReactiveWebServerFact
}
private HttpProtocol[] listProtocols() {
if (getHttp2() != null && getHttp2().isEnabled()) {
if (getSsl() != null && getSsl().isEnabled()) {
return new HttpProtocol[] { HttpProtocol.H2, HttpProtocol.HTTP11 };
}
else {
return new HttpProtocol[] { HttpProtocol.H2C, HttpProtocol.HTTP11 };
}
if (getHttp2() != null && getHttp2().isEnabled() && getSsl() != null && getSsl().isEnabled()) {
return new HttpProtocol[] { HttpProtocol.H2, HttpProtocol.HTTP11 };
}
return new HttpProtocol[] { HttpProtocol.HTTP11 };
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment