Pārlūkot izejas kodu

network 增加跳过ssl证书验证函数。
ra image 改为忽略ssl证书验证。

Ray Zhang 7 gadi atpakaļ
vecāks
revīzija
ce1f6f4fc5

+ 51 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/Network.java

@@ -30,11 +30,20 @@ import java.net.MalformedURLException;
 import java.net.ProtocolException;
 import java.net.URL;
 import java.net.URLEncoder;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
 public class Network {
 
     public static final int	REQUEST_TIMEOUT					= 15 * 1000;			// request
@@ -63,6 +72,39 @@ public class Network {
     public static final int		RESULT_VER_LOW					= -15;
     public static int			RESULT_AUTH_EXPIRED				= 99;
 
+
+    public static void handleSSLHandshake() {
+        try {
+            TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
+                public X509Certificate[] getAcceptedIssuers() {
+                    return new X509Certificate[0];
+                }
+
+                @Override
+                public void checkClientTrusted(X509Certificate[] certs, String authType) {
+                }
+
+                @Override
+                public void checkServerTrusted(X509Certificate[] certs, String authType) {
+                }
+            }};
+
+            SSLContext sc = SSLContext.getInstance("TLS");
+            // trustAllCerts信任所有的证书
+            sc.init(null, trustAllCerts, new SecureRandom());
+            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
+                @Override
+                public boolean verify(String hostname, SSLSession session) {
+                    return true;
+                }
+            });
+        } catch (Exception ignored) {
+        }
+
+    }
+
+
     public static String getJson(String url, Bundle parms,int timeout)
     {
         String TAG = "net_dbg@GetJson";
@@ -77,6 +119,15 @@ public class Network {
             URL _url;
             _url = new URL(url);
             connection = (HttpURLConnection) _url.openConnection();
+
+//            connection.setHostnameVerifier(new HostnameVerifier() {
+//                @Override
+//                public boolean verify(String hostname, SSLSession session) {
+//                    return true;
+//                }
+//            });
+
+
             connection.setReadTimeout(timeout);
             connection.setConnectTimeout(timeout);
             // 设置请求方式

+ 2 - 0
ApexDrivers/raimage/src/main/java/com/usai/redant/raimage/RedAntApplication.java

@@ -15,6 +15,7 @@ import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.usai.redant.rautils.utils.Network;
 import com.usai.service.RAImageBackgroundService;
 
 import org.json.JSONObject;
@@ -90,6 +91,7 @@ public class RedAntApplication extends Application
 		super.onCreate();
         instance = this;
 
+        Network.handleSSLHandshake();
 
 		device_id=Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID);