/**
* $Revision $
* $Date $
*
* Copyright (C) 2005-2010 Jive Software. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.community.util.ssl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.net.*;
import java.security.*;
import java.security.cert.*;
import javax.net.SocketFactory;
import javax.net.ssl.*;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.params.HttpConnectionParams;
import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
public class DummySSLSocketFactory extends SSLSocketFactory implements SecureProtocolSocketFactory
{
private static final Logger Log = LoggerFactory.getLogger(DummySSLSocketFactory.class);
private SSLSocketFactory factory;
private static class DummyTrustManager
implements X509TrustManager
{
public boolean isClientTrusted(X509Certificate cert[])
{
return true;
}
public boolean isServerTrusted(X509Certificate cert[])
{
try
{
return true;
}
catch(Exception e)
{
return false;
}
}
public void checkClientTrusted(X509Certificate ax509certificate[], String s1)
throws CertificateException
{
}
public void checkServerTrusted(X509Certificate ax509certificate[], String s1)
throws CertificateException
{
}
public X509Certificate[] getAcceptedIssuers()
{
return new X509Certificate[0];
}
private DummyTrustManager()
{
}
}
public DummySSLSocketFactory()
{
try
{
SSLContext sslcontent = SSLContext.getInstance("SSL");
sslcontent.init(null, new TrustManager[] {
new DummyTrustManager()
}, new SecureRandom());
factory = sslcontent.getSocketFactory();
}
catch(NoSuchAlgorithmException e)
{
Log.error(e.toString());
}
catch(KeyManagementException e)
{
Log.error(e.toString());
}
}
public static SocketFactory getDefault()
{
return new DummySSLSocketFactory();
}
public Socket createSocket(Socket socket, String s, int i, boolean flag)
throws IOException
{
return factory.createSocket(socket, s, i, flag);
}
public Socket createSocket(InetAddress inaddr, int i, InetAddress inaddr2, int j)
throws IOException
{
return factory.createSocket(inaddr, i, inaddr2, j);
}
public Socket createSocket(InetAddress inaddr, int i)
throws IOException
{
return factory.createSocket(inaddr, i);
}
public Socket createSocket(String s, int i, InetAddress inaddr, int j)
throws IOException
{
return factory.createSocket(s, i, inaddr, j);
}
public Socket createSocket(String s, int i, InetAddress inaddr, int j, HttpConnectionParams httpConnectionParams)
throws IOException, UnknownHostException, ConnectTimeoutException
{
return factory.createSocket(s, i, inaddr, j);
}
public Socket createSocket(String s, int i)
throws IOException
{
return factory.createSocket(s, i);
}
public Socket createSocket()
throws IOException
{
return factory.createSocket();
}
public String[] getDefaultCipherSuites()
{
return factory.getSupportedCipherSuites();
}
public String[] getSupportedCipherSuites()
{
return factory.getSupportedCipherSuites();
}
}