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;
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;
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();
}
// 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;
+ }
+ }
}