CXF-7488 - "Protocol Mismatch when using Netty with TLS" # Conflicts: # rt/transports/http-netty/netty-server/src/test/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngineTest.java
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/a11b474c Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/a11b474c Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/a11b474c Branch: refs/heads/3.1.x-fixes Commit: a11b474cb31cb2fc03508c8ab6c8f8470b44c2a4 Parents: b3021ba Author: Colm O hEigeartaigh <cohei...@apache.org> Authored: Tue Aug 29 17:11:30 2017 +0100 Committer: Colm O hEigeartaigh <cohei...@apache.org> Committed: Tue Aug 29 17:12:23 2017 +0100 ---------------------------------------------------------------------- .../http/netty/server/NettyHttpServerEngine.java | 5 +++++ .../netty/server/NettyHttpServerEngineTest.java | 19 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/a11b474c/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java ---------------------------------------------------------------------- diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java index 9bd5095..ce29034 100644 --- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java +++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java @@ -118,6 +118,11 @@ public class NettyHttpServerEngine implements ServerEngine { */ public void setTlsServerParameters(TLSServerParameters params) { tlsServerParameters = params; + if (tlsServerParameters != null) { + protocol = "https"; + } else { + protocol = "http"; + } } /** http://git-wip-us.apache.org/repos/asf/cxf/blob/a11b474c/rt/transports/http-netty/netty-server/src/test/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngineTest.java ---------------------------------------------------------------------- diff --git a/rt/transports/http-netty/netty-server/src/test/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngineTest.java b/rt/transports/http-netty/netty-server/src/test/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngineTest.java index f03466d..b8eab84 100644 --- a/rt/transports/http-netty/netty-server/src/test/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngineTest.java +++ b/rt/transports/http-netty/netty-server/src/test/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngineTest.java @@ -25,8 +25,12 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; +import java.util.HashMap; +import java.util.Map; + import org.apache.cxf.Bus; import org.apache.cxf.configuration.Configurer; +import org.apache.cxf.configuration.jsse.TLSServerParameters; import org.apache.cxf.helpers.IOUtils; import org.apache.cxf.testutil.common.TestUtil; import org.easymock.EasyMock; @@ -39,7 +43,9 @@ import org.junit.Test; public class NettyHttpServerEngineTest extends Assert { private static final int PORT1 = Integer.valueOf(TestUtil.getPortNumber(NettyHttpServerEngineTest.class, 1)); - private static final int PORT3 + private static final int PORT2 + = Integer.valueOf(TestUtil.getPortNumber(NettyHttpServerEngineTest.class, 2)); + private static final int PORT3 = Integer.valueOf(TestUtil.getPortNumber(NettyHttpServerEngineTest.class, 3)); @@ -140,6 +146,17 @@ public class NettyHttpServerEngineTest extends Assert { NettyHttpServerEngineFactory.destroyForPort(PORT3); } + @Test + public void testHttps() throws Exception { + Map<String, TLSServerParameters> tlsParamsMap = new HashMap<>(); + tlsParamsMap.put(Integer.toString(PORT2), new TLSServerParameters()); + factory.setTlsServerParameters(tlsParamsMap); + + factory.createNettyHttpServerEngine(PORT2, "https"); + + NettyHttpServerEngineFactory.destroyForPort(PORT2); + } + private String getResponse(String target) throws Exception { URL url = new URL(target);