Author: markt Date: Fri Nov 2 18:49:55 2018 New Revision: 1845619 URL: http://svn.apache.org/viewvc?rev=1845619&view=rev Log: Java 7 doesn't use TLS v1.2 by default. Make sure the client does for these tests.
Modified: tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Modified: tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java?rev=1845619&r1=1845618&r2=1845619&view=diff ============================================================================== --- tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java (original) +++ tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Fri Nov 2 18:49:55 2018 @@ -16,11 +16,17 @@ */ package org.apache.tomcat.websocket; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.net.URI; +import java.security.KeyStore; import java.util.Queue; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; import javax.websocket.ClientEndpointConfig; import javax.websocket.ContainerProvider; import javax.websocket.MessageHandler; @@ -57,9 +63,10 @@ public class TestWebSocketFrameClientSSL ContainerProvider.getWebSocketContainer(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); + clientEndpointConfig.getUserProperties().put( - Constants.SSL_TRUSTSTORE_PROPERTY, - TesterSupport.CA_JKS); + Constants.SSL_CONTEXT_PROPERTY, createSSLContext()); + Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, clientEndpointConfig, @@ -104,9 +111,10 @@ public class TestWebSocketFrameClientSSL ContainerProvider.getWebSocketContainer(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); + clientEndpointConfig.getUserProperties().put( - Constants.SSL_TRUSTSTORE_PROPERTY, - TesterSupport.CA_JKS); + Constants.SSL_CONTEXT_PROPERTY, createSSLContext()); + Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, clientEndpointConfig, @@ -150,4 +158,26 @@ public class TestWebSocketFrameClientSSL // Close the client session. wsSession.close(); } + + + private SSLContext createSSLContext() throws Exception { + // Create the SSL Context + // Java 7 doesn't default to TLSv1.2 but the tests do + SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); + + // Trust store + File keyStoreFile = new File(TesterSupport.CA_JKS); + KeyStore ks = KeyStore.getInstance("JKS"); + try (InputStream is = new FileInputStream(keyStoreFile)) { + ks.load(is, Constants.SSL_TRUSTSTORE_PWD_DEFAULT.toCharArray()); + } + + TrustManagerFactory tmf = TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(ks); + + sslContext.init(null, tmf.getTrustManagers(), null); + + return sslContext; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org