Java tutorial
/* * Copyright 2012, 2013 Devin Collins <agent1709@gmail.com>, * Bobby Ore <bob1987@gmail.com>, Casey Stark <starkca90@gmail.com> * * This file is part of MyTLC Sync. * * MyTLC Sync is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * MyTLC Sync is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MyTLC Sync. If not, see <http://www.gnu.org/licenses/>. */ package com.cttapp.bby.mytlc.layer8apps; import javax.net.ssl.*; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import java.security.*; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; public class SimpleSSLSocketFactory extends org.apache.http.conn.ssl.SSLSocketFactory { private SSLSocketFactory sslFactory = HttpsURLConnection.getDefaultSSLSocketFactory(); public SimpleSSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException { super(null); try { SSLContext context = SSLContext.getInstance("TLS"); // Create a trust manager that does not validate certificate chains and simply // accept all type of certificates TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[] {}; } public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } } }; // Initialize the socket factory context.init(null, trustAllCerts, new SecureRandom()); sslFactory = context.getSocketFactory(); } catch (Exception e) { e.printStackTrace(); } } @Override public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException { return sslFactory.createSocket(socket, host, port, autoClose); } @Override public Socket createSocket() throws IOException { return sslFactory.createSocket(); } }