|
@@ -0,0 +1,75 @@
|
|
|
+/*
|
|
|
+ * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
|
|
+ *
|
|
|
+ * 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.maxkey.springboot.oauthclient.http;
|
|
|
+
|
|
|
+import javax.net.ssl.HostnameVerifier;
|
|
|
+import javax.net.ssl.HttpsURLConnection;
|
|
|
+import javax.net.ssl.SSLSession;
|
|
|
+
|
|
|
+public class HttpsTrusts {
|
|
|
+
|
|
|
+ private static void trustAllHttpsCertificates() throws Exception {
|
|
|
+ javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
|
|
|
+ javax.net.ssl.TrustManager tm = new HttpsTrustsTM();
|
|
|
+ trustAllCerts[0] = tm;
|
|
|
+ javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
|
|
|
+ sc.init(null, trustAllCerts, null);
|
|
|
+ javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * https ssl auto trust
|
|
|
+ */
|
|
|
+ public static void beforeConnection() {
|
|
|
+ try {
|
|
|
+ trustAllHttpsCertificates();
|
|
|
+ HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
|
|
|
+ public boolean verify(String urlHostName, SSLSession session) {
|
|
|
+ System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static class HttpsTrustsTM implements javax.net.ssl.TrustManager,javax.net.ssl.X509TrustManager {
|
|
|
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
|
|
|
+ throws java.security.cert.CertificateException {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
|
|
|
+ throws java.security.cert.CertificateException {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|