Author: markt
Date: Tue Jul 26 20:56:27 2011
New Revision: 1151240

URL: http://svn.apache.org/viewvc?rev=1151240&view=rev
Log:
Fix SSL unit test failures with APR/native

Modified:
    tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java

Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java?rev=1151240&r1=1151239&r2=1151240&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Tue Jul 26 
20:56:27 2011
@@ -20,6 +20,9 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
 import java.security.KeyManagementException;
 import java.security.KeyStore;
 import java.security.NoSuchAlgorithmException;
@@ -29,6 +32,8 @@ import javax.net.ssl.KeyManager;
 import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.TrustManagerFactory;
 import javax.net.ssl.X509TrustManager;
@@ -132,9 +137,9 @@ public final class TesterSupport {
             SSLContext sc = SSLContext.getInstance("SSL");
             sc.init(TesterSupport.getUser1KeyManagers(),
                     TesterSupport.getTrustManagers(),
-                    null);     
+                    null);
             javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
-                    sc.getSocketFactory());
+                    new TesterSSLSocketFactory(sc.getSocketFactory()));
         } catch (Exception e) {
             e.printStackTrace();
         } 
@@ -261,4 +266,67 @@ public final class TesterSupport {
             // NOOP - Trust everything
         }
     }
+
+    private static class TesterSSLSocketFactory
+            extends SSLSocketFactory {
+
+        private SSLSocketFactory factory;
+
+        public TesterSSLSocketFactory(SSLSocketFactory factory) {
+            this.factory = factory;
+        }
+
+        @Override
+        public String[] getDefaultCipherSuites() {
+            return factory.getDefaultCipherSuites();
+        }
+
+        @Override
+        public String[] getSupportedCipherSuites() {
+            return factory.getSupportedCipherSuites();
+        }
+
+        @Override
+        public Socket createSocket(Socket socket, String s, int i, boolean 
flag)
+                throws IOException {
+            SSLSocket result =
+                (SSLSocket) factory.createSocket(socket, s, i, flag);
+            result.setEnabledProtocols(new String[] { "SSLv3" } );
+            return result;
+        }
+
+        @Override
+        public Socket createSocket(String s, int i) throws IOException,
+                UnknownHostException {
+            SSLSocket result = (SSLSocket) factory.createSocket(s, i);
+            result.setEnabledProtocols(new String[] { "SSLv3" } );
+            return result;
+        }
+
+        @Override
+        public Socket createSocket(String s, int i, InetAddress inetaddress,
+                int j) throws IOException, UnknownHostException {
+            SSLSocket result =
+                (SSLSocket) factory.createSocket(s, i, inetaddress, j);
+            result.setEnabledProtocols(new String[] { "SSLv3" } );
+            return result;
+        }
+
+        @Override
+        public Socket createSocket(InetAddress inetaddress, int i)
+                throws IOException {
+            SSLSocket result = (SSLSocket) factory.createSocket(inetaddress, 
i);
+            result.setEnabledProtocols(new String[] { "SSLv3" } );
+            return result;
+        }
+
+        @Override
+        public Socket createSocket(InetAddress inetaddress, int i,
+                InetAddress inetaddress1, int j) throws IOException {
+            SSLSocket result = (SSLSocket) factory.createSocket(
+                    inetaddress, i, inetaddress1, j);
+            result.setEnabledProtocols(new String[] { "SSLv3" } );
+            return result;
+        }
+    }
 }



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

Reply via email to