You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/11/03 12:13:16 UTC

svn commit: r1845653 - /tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java

Author: markt
Date: Sat Nov  3 12:13:15 2018
New Revision: 1845653

URL: http://svn.apache.org/viewvc?rev=1845653&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/TestWsWebSocketContainer.java

Modified: tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java?rev=1845653&r1=1845652&r2=1845653&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java (original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java Sat Nov  3 12:13:15 2018
@@ -16,10 +16,14 @@
  */
 package org.apache.tomcat.websocket;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.SocketTimeoutException;
 import java.net.URI;
 import java.nio.ByteBuffer;
+import java.security.KeyStore;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Queue;
@@ -29,6 +33,8 @@ import java.util.concurrent.ExecutionExc
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
 import javax.servlet.ServletContextEvent;
 import javax.websocket.ClientEndpointConfig;
 import javax.websocket.ContainerProvider;
@@ -833,9 +839,28 @@ public class TestWsWebSocketContainer ex
                 ContainerProvider.getWebSocketContainer();
         ClientEndpointConfig clientEndpointConfig =
                 ClientEndpointConfig.Builder.create().build();
+
+        // 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, org.apache.tomcat.websocket.Constants.SSL_TRUSTSTORE_PWD_DEFAULT.toCharArray());
+        }
+
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance(
+                TrustManagerFactory.getDefaultAlgorithm());
+        tmf.init(ks);
+
+        sslContext.init(null, tmf.getTrustManagers(), null);
+
         clientEndpointConfig.getUserProperties().put(
-                org.apache.tomcat.websocket.Constants.SSL_TRUSTSTORE_PROPERTY,
-                TesterSupport.CA_JKS);
+                org.apache.tomcat.websocket.Constants.SSL_CONTEXT_PROPERTY,
+                sslContext);
+
         Session wsSession = wsContainer.connectToServer(
                 TesterProgrammaticEndpoint.class,
                 clientEndpointConfig,



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org