From adbfcbcf60d360cd8b47da947d847e1cc4afb0e6 Mon Sep 17 00:00:00 2001 From: olivier lamy Date: Tue, 5 Mar 2019 10:01:37 +1000 Subject: [PATCH] - Issue #3425 upgrade conscrypt to 2.0.0 and get rid of reflection usage - align conscrypt version in conscrypt.mod file - add more simple unit test to test conscrypt alpn usage Signed-off-by: olivier lamy --- .../client/ConscryptClientALPNProcessor.java | 11 +- .../jetty-alpn-conscrypt-server/pom.xml | 25 +++ .../server/ConscryptServerALPNProcessor.java | 29 +++- .../server/ConscryptHTTP2Server.java | 72 -------- .../server/ConscryptHTTP2ServerTest.java | 155 ++++++++++++++++++ .../test/resources/jetty-logging.properties | 4 +- .../src/test/resources/keystore | Bin 0 -> 2206 bytes .../src/test/resources/keystore.jks | Bin 3697 -> 0 bytes .../src/main/resources/modules/conscrypt.mod | 2 +- pom.xml | 2 +- 10 files changed, 212 insertions(+), 88 deletions(-) delete mode 100644 jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2Server.java create mode 100644 jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2ServerTest.java create mode 100644 jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/keystore delete mode 100644 jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/keystore.jks diff --git a/jetty-alpn/jetty-alpn-conscrypt-client/src/main/java/org/eclipse/jetty/alpn/conscrypt/client/ConscryptClientALPNProcessor.java b/jetty-alpn/jetty-alpn-conscrypt-client/src/main/java/org/eclipse/jetty/alpn/conscrypt/client/ConscryptClientALPNProcessor.java index 03d83a5d1c4..a848d7eb640 100644 --- a/jetty-alpn/jetty-alpn-conscrypt-client/src/main/java/org/eclipse/jetty/alpn/conscrypt/client/ConscryptClientALPNProcessor.java +++ b/jetty-alpn/jetty-alpn-conscrypt-client/src/main/java/org/eclipse/jetty/alpn/conscrypt/client/ConscryptClientALPNProcessor.java @@ -18,12 +18,11 @@ package org.eclipse.jetty.alpn.conscrypt.client; -import java.lang.reflect.Method; -import java.nio.charset.StandardCharsets; import java.security.Security; import javax.net.ssl.SSLEngine; +import org.conscrypt.Conscrypt; import org.conscrypt.OpenSSLProvider; import org.eclipse.jetty.alpn.client.ALPNClientConnection; import org.eclipse.jetty.io.Connection; @@ -59,11 +58,9 @@ public class ConscryptClientALPNProcessor implements ALPNProcessor.Client { try { - Method setAlpnProtocols = sslEngine.getClass().getDeclaredMethod("setApplicationProtocols", String[].class); - setAlpnProtocols.setAccessible(true); ALPNClientConnection alpn = (ALPNClientConnection)connection; String[] protocols = alpn.getProtocols().toArray(new String[0]); - setAlpnProtocols.invoke(sslEngine, (Object)protocols); + Conscrypt.setApplicationProtocols(sslEngine, protocols); ((SslConnection.DecryptedEndPoint)connection.getEndPoint()).getSslConnection() .addHandshakeListener(new ALPNListener(alpn)); } @@ -92,9 +89,7 @@ public class ConscryptClientALPNProcessor implements ALPNProcessor.Client try { SSLEngine sslEngine = alpnConnection.getSSLEngine(); - Method method = sslEngine.getClass().getDeclaredMethod("getApplicationProtocol"); - method.setAccessible(true); - String protocol = (String)method.invoke(sslEngine); + String protocol = Conscrypt.getApplicationProtocol(sslEngine); alpnConnection.selected(protocol); } catch (Throwable e) diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml b/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml index a584b4d5b95..4dcef327633 100644 --- a/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml +++ b/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml @@ -38,6 +38,31 @@ ${project.version} test + + org.eclipse.jetty + jetty-alpn-conscrypt-client + ${project.version} + test + + + org.eclipse.jetty + jetty-client + ${project.version} + test + + + org.eclipse.jetty.http2 + http2-client + ${project.version} + test + + + org.eclipse.jetty.http2 + http2-http-client-transport + ${project.version} + test + + diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/src/main/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptServerALPNProcessor.java b/jetty-alpn/jetty-alpn-conscrypt-server/src/main/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptServerALPNProcessor.java index 9444683b58b..004455da10a 100644 --- a/jetty-alpn/jetty-alpn-conscrypt-server/src/main/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptServerALPNProcessor.java +++ b/jetty-alpn/jetty-alpn-conscrypt-server/src/main/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptServerALPNProcessor.java @@ -18,13 +18,15 @@ package org.eclipse.jetty.alpn.conscrypt.server; -import java.lang.reflect.Method; import java.security.Security; import java.util.List; import java.util.function.BiFunction; import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLSocket; +import org.conscrypt.ApplicationProtocolSelector; +import org.conscrypt.Conscrypt; import org.conscrypt.OpenSSLProvider; import org.eclipse.jetty.alpn.server.ALPNServerConnection; import org.eclipse.jetty.io.Connection; @@ -60,9 +62,10 @@ public class ConscryptServerALPNProcessor implements ALPNProcessor.Server { try { - Method method = sslEngine.getClass().getMethod("setHandshakeApplicationProtocolSelector", BiFunction.class); - method.setAccessible(true); - method.invoke(sslEngine,new ALPNCallback((ALPNServerConnection)connection)); + // with java 9+ we must use + //sslEngine.setHandshakeApplicationProtocolSelector(new ALPNCallback((ALPNServerConnection)connection)); + Conscrypt.setApplicationProtocolSelector(sslEngine, + toApplicationProtocolSelector(new ALPNCallback((ALPNServerConnection)connection))); } catch (RuntimeException x) { @@ -74,6 +77,24 @@ public class ConscryptServerALPNProcessor implements ALPNProcessor.Server } } + private static ApplicationProtocolSelector toApplicationProtocolSelector(BiFunction, String> selector) + { + return new ApplicationProtocolSelector() + { + @Override + public String selectApplicationProtocol(SSLEngine engine, List protocols) + { + return selector.apply(engine, protocols); + } + + @Override + public String selectApplicationProtocol(SSLSocket socket, List protocols) + { + throw new UnsupportedOperationException(); + } + }; + } + private final class ALPNCallback implements BiFunction,String>, SslHandshakeListener { private final ALPNServerConnection alpnConnection; diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2Server.java b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2Server.java deleted file mode 100644 index 26f6ec1e92f..00000000000 --- a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2Server.java +++ /dev/null @@ -1,72 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.eclipse.jetty.alpn.conscrypt.server; - -import java.security.Security; - -import org.conscrypt.OpenSSLProvider; -import org.eclipse.jetty.alpn.server.ALPNServerConnectionFactory; -import org.eclipse.jetty.http2.HTTP2Cipher; -import org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory; -import org.eclipse.jetty.server.HttpConfiguration; -import org.eclipse.jetty.server.HttpConnectionFactory; -import org.eclipse.jetty.server.SecureRequestCustomizer; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.ServerConnector; -import org.eclipse.jetty.server.SslConnectionFactory; -import org.eclipse.jetty.util.ssl.SslContextFactory; - -/** - * Test server that verifies that the Conscrypt ALPN mechanism works. - */ -public class ConscryptHTTP2Server -{ - public static void main(String[] args) throws Exception - { - Security.addProvider(new OpenSSLProvider()); - - Server server = new Server(); - - HttpConfiguration httpsConfig = new HttpConfiguration(); - httpsConfig.setSecureScheme("https"); - httpsConfig.setSecurePort(8443); - httpsConfig.setSendXPoweredBy(true); - httpsConfig.setSendServerVersion(true); - httpsConfig.addCustomizer(new SecureRequestCustomizer()); - - SslContextFactory sslContextFactory = new SslContextFactory(); - sslContextFactory.setProvider("Conscrypt"); - sslContextFactory.setKeyStorePath("src/test/resources/keystore.jks"); - sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"); - sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g"); - sslContextFactory.setCipherComparator(HTTP2Cipher.COMPARATOR); - - HttpConnectionFactory http = new HttpConnectionFactory(httpsConfig); - HTTP2ServerConnectionFactory h2 = new HTTP2ServerConnectionFactory(httpsConfig); - ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory(); - alpn.setDefaultProtocol(http.getProtocol()); - SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, alpn.getProtocol()); - - ServerConnector http2Connector = new ServerConnector(server, ssl, alpn, h2, http); - http2Connector.setPort(8443); - server.addConnector(http2Connector); - - server.start(); - } -} diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2ServerTest.java b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2ServerTest.java new file mode 100644 index 00000000000..69e49b187f0 --- /dev/null +++ b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/java/org/eclipse/jetty/alpn/conscrypt/server/ConscryptHTTP2ServerTest.java @@ -0,0 +1,155 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.alpn.conscrypt.server; + +import org.conscrypt.OpenSSLProvider; +import org.eclipse.jetty.alpn.server.ALPNServerConnectionFactory; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.api.ContentResponse; +import org.eclipse.jetty.http2.client.HTTP2Client; +import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2; +import org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory; +import org.eclipse.jetty.server.HttpConfiguration; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.Request; +import org.eclipse.jetty.server.SecureRequestCustomizer; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.handler.AbstractHandler; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.Security; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Test server that verifies that the Conscrypt ALPN mechanism works for both server and client side + */ +public class ConscryptHTTP2ServerTest +{ + + Server server = new Server(); + + static + { + Security.addProvider(new OpenSSLProvider()); + } + + public static void main(String[] args) + throws Exception + { + new ConscryptHTTP2ServerTest().startServer(); + } + + private SslContextFactory newSslContextFactory() + { + Path path = Paths.get("src", "test", "resources"); + File keys = path.resolve("keystore").toFile(); + + SslContextFactory sslContextFactory = new SslContextFactory(); + sslContextFactory.setKeyManagerPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"); + sslContextFactory.setTrustStorePath(keys.getAbsolutePath()); + sslContextFactory.setKeyStorePath(keys.getAbsolutePath()); + sslContextFactory.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"); + sslContextFactory.setProvider("Conscrypt"); + sslContextFactory.setEndpointIdentificationAlgorithm(null); + return sslContextFactory; + } + + @BeforeEach + public void startServer() + throws Exception + { + + HttpConfiguration httpsConfig = new HttpConfiguration(); + httpsConfig.setSecureScheme( "https" ); + + httpsConfig.setSendXPoweredBy(true); + httpsConfig.setSendServerVersion(true); + httpsConfig.addCustomizer(new SecureRequestCustomizer()); + + HttpConnectionFactory http = new HttpConnectionFactory(httpsConfig); + HTTP2ServerConnectionFactory h2 = new HTTP2ServerConnectionFactory(httpsConfig); + ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory(); + alpn.setDefaultProtocol(http.getProtocol()); + SslConnectionFactory ssl = new SslConnectionFactory(newSslContextFactory(), alpn.getProtocol()); + + ServerConnector http2Connector = new ServerConnector(server,ssl,alpn,h2,http); + http2Connector.setPort(0); + server.addConnector(http2Connector); + + server.setHandler(new AbstractHandler() + { + @Override + public void handle(String target,Request baseRequest,HttpServletRequest request, + HttpServletResponse response) + throws IOException, ServletException + { + response.setStatus(200); + baseRequest.setHandled(true); + } + } ); + + server.start(); + + } + + @AfterEach + public void stopServer() + throws Exception + { + if (server != null) + { + server.stop(); + } + } + + + @Test + public void test_simple_query() + throws Exception + { + + HTTP2Client h2Client = new HTTP2Client(); + HttpClient client = new HttpClient(new HttpClientTransportOverHTTP2(h2Client),newSslContextFactory()); + client.start(); + try + { + int port = ((ServerConnector)server.getConnectors()[0]).getLocalPort(); + ContentResponse contentResponse = client.GET("https://localhost:" + port); + assertEquals(200, contentResponse.getStatus()); + } + finally + { + client.stop(); + } + + } +} diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/jetty-logging.properties b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/jetty-logging.properties index c391f84e35b..7df023033b3 100644 --- a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/jetty-logging.properties +++ b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/jetty-logging.properties @@ -1,3 +1,3 @@ org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -#org.eclipse.jetty.LEVEL=DEBUG -#org.eclipse.jetty.alpn.LEVEL=DEBUG +org.eclipse.jetty.LEVEL=DEBUG +org.eclipse.jetty.alpn.LEVEL=DEBUG diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/keystore b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/keystore new file mode 100644 index 0000000000000000000000000000000000000000..428ba54776ede2fdcdeedd879edb927c2abd9953 GIT binary patch literal 2206 zcmcgt`9Bkm8{cNkoMUp6gmShKn!AQX*(l6Nj(i=TnQPOKYtv{*Wg>ItE=Q!pRYH8a z$Sp#S#2lYw#aw;$y9u4T}83H*%lp zAKZay0sy=q1Qoo85aAQh;$ zD(c2EIN#D7WwYDLKUg!CotQPD@dp;5FR#bgaace(^x$6g5frD~(_b(MI^J&*A2DRp zf5Q2onfE(zvUb9|9C`66)YFRNM6~xrz4;iVbU=P|*YT2eWHFJJtr+M@zt2qPm)K~rRcqcs=LM12)PX0TT%QO zlf*xkqD3}7l)1J`5W(>=9nR0e6j-<79<11v3ZuXXcQpoCsqY~n`$FN+S}hcVm5Y>G zXnD{@DYs1@{S0z(lW+?86LWKtku$$-(khsh>0qRUXn=84`GRn?77M^_JY`durnN;KE zW#OJ`h<6xcB{I))ekGpc*Ylt}0cx4|OMBDPQvx4`r`}4Ze5_ipdObGMTi3bZHd5PC zcY0;?uBWu$PSvjJeb87nY7ghNv?%M@SoDl6IWt`bQCosfSh$#D6$ea~QhKM^ud2Ut z+9PYJuVpoELmN-A`F$BicO{BSYg@#tS%avVfb}DxL)|NanJ)#zB!2~?#Ot%H7--9N zU$bs0fS5G!m5M4&WK3#a|H|Tgw*?X-;H+Lu@kwA>qSR~7UC7b)7MJXTn6PG>n@8jP zW+}F^X$$c;U~4ryqRF; z>`j!tbLMK4ZGyY643|~?%Mu#fm!l%wAKjBDmd+VYmp3S#$scD$~bxbf|z#)hShN0*AhRaPDcmqrftGlHq4^54MM$Xfy(2> zH8QYVMzmn_oHbvJCB`IN~E&{1*h&0gEM{e zKvWvzp(!BqMX8`t#)~0nq}Wa zr6>FRPyp;AAB&)1$5@;r$23J{K&~>TWjZf7V$wFzmGM95CXhFG1cJNVAXks}C+&2- zbf9Qn*D8N}Afd2kpwDxns3%1uaFhAqDV8ksWiWY|quuLGZ0)SqrJ!Y8yX}@}IyC$C zQ3rCUsn}#>F#D8%D?q~ySy4j&he%Bs{{7V%rl!ui`@KQP?NTi+_iN{cwom&9RaMRR zB~z!hz|0HAgB9_Ijvpe-zr#jLbckJsc>vmo{+im?t8lA;N#fD4?{lb&J0V8Gocq%; f1ihv=QIDh{M_<9V+45Z2{KE4_qW}V3B0uV%GgrOJ literal 0 HcmV?d00001 diff --git a/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/keystore.jks b/jetty-alpn/jetty-alpn-conscrypt-server/src/test/resources/keystore.jks deleted file mode 100644 index d6592f95ee93575d659f28e1c2ebb81191484986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3697 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 diff --git a/jetty-home/src/main/resources/modules/conscrypt.mod b/jetty-home/src/main/resources/modules/conscrypt.mod index 66bcf8d06fc..9a886357be8 100644 --- a/jetty-home/src/main/resources/modules/conscrypt.mod +++ b/jetty-home/src/main/resources/modules/conscrypt.mod @@ -29,6 +29,6 @@ Conscrypt is distributed under the Apache Licence 2.0 https://github.com/google/conscrypt/blob/master/LICENSE [ini] -conscrypt.version?=1.1.4 +conscrypt.version?=2.0.0 jetty.sslContext.provider?=Conscrypt diff --git a/pom.xml b/pom.xml index a62ed4cb924..822f5fce5ed 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 9.4.8.Final undefined - 1.4.1 + 2.0.0 7.0 1.21 benchmarks