|
22 | 22 | import java.util.Map;
|
23 | 23 | import java.util.HashMap;
|
24 | 24 | import java.util.Iterator;
|
| 25 | + |
| 26 | +import javax.net.ssl.HostnameVerifier; |
| 27 | +import javax.net.ssl.HttpsURLConnection; |
| 28 | +import javax.net.ssl.SSLContext; |
| 29 | +import javax.net.ssl.SSLSession; |
| 30 | +import javax.net.ssl.TrustManager; |
| 31 | +import javax.net.ssl.X509TrustManager; |
| 32 | + |
25 | 33 | import org.json.*;
|
26 | 34 |
|
27 | 35 | /**
|
@@ -713,6 +721,8 @@ private HashMap call(String apiMethod, HashMap apiArgs, String httpMethod) {
|
713 | 721 | }
|
714 | 722 | }
|
715 | 723 | }
|
| 724 | + |
| 725 | + trustServerAndCertificate(); |
716 | 726 |
|
717 | 727 | // Execute the API call
|
718 | 728 | String path = this.uri.getPath() + "/" + API_VERSION + "/" + apiMethod;
|
@@ -741,6 +751,43 @@ else if (httpMethod == "POST") {
|
741 | 751 | throw new EPLiteException("Unable to connect to Etherpad Lite instance (" + e.getClass() + "): " + e.getMessage());
|
742 | 752 | }
|
743 | 753 | }
|
| 754 | + |
| 755 | + /** |
| 756 | + * Creates a trust manager to trust all certificates if you open a ssl connection |
| 757 | + */ |
| 758 | + private void trustServerAndCertificate() { |
| 759 | + // Create a trust manager that does not validate certificate chains |
| 760 | + TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { |
| 761 | + public java.security.cert.X509Certificate[] getAcceptedIssuers() { |
| 762 | + return null; |
| 763 | + } |
| 764 | + |
| 765 | + public void checkClientTrusted( |
| 766 | + java.security.cert.X509Certificate[] certs, String authType) { |
| 767 | + } |
| 768 | + |
| 769 | + public void checkServerTrusted( |
| 770 | + java.security.cert.X509Certificate[] certs, String authType) { |
| 771 | + } |
| 772 | + } |
| 773 | + }; |
| 774 | + |
| 775 | + // Install the all-trusting trust manager |
| 776 | + try { |
| 777 | + SSLContext sc = SSLContext.getInstance("SSL"); |
| 778 | + sc.init(null, trustAllCerts, new java.security.SecureRandom()); |
| 779 | + HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); |
| 780 | + } catch (Exception e) { |
| 781 | + } |
| 782 | + |
| 783 | + HostnameVerifier hv = new HostnameVerifier() { |
| 784 | + @Override |
| 785 | + public boolean verify(String hostname, SSLSession session) { |
| 786 | + return true; |
| 787 | + } |
| 788 | + }; |
| 789 | + HttpsURLConnection.setDefaultHostnameVerifier(hv); |
| 790 | + } |
744 | 791 |
|
745 | 792 | /**
|
746 | 793 | * Converts the API resonse's JSON string into a HashMap.
|
|
0 commit comments