From 5f5f07db32be63e6112ddff7722c1ada10472da5 Mon Sep 17 00:00:00 2001 From: Mr.Shi <1878285526@qq.com> Date: 星期一, 14 八月 2023 18:43:41 +0800 Subject: [PATCH] Merge branch 'master' of ssh://139.186.142.91:29418/productDev/dmMes --- server/src/main/java/doumeemes/core/utils/HttpsUtil.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 106 insertions(+), 1 deletions(-) diff --git a/server/src/main/java/doumeemes/core/utils/HttpsUtil.java b/server/src/main/java/doumeemes/core/utils/HttpsUtil.java index a1d93bd..4660554 100644 --- a/server/src/main/java/doumeemes/core/utils/HttpsUtil.java +++ b/server/src/main/java/doumeemes/core/utils/HttpsUtil.java @@ -15,7 +15,12 @@ import org.apache.http.util.EntityUtils; import org.springframework.web.util.UriComponentsBuilder; +import javax.net.ssl.*; +import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; @@ -24,6 +29,10 @@ import java.util.Map; public class HttpsUtil { + + public static String get(String url,boolean ignoreSSL) { + return connection(url, "GET", null, null,ignoreSSL); + } public static String sendPostByHttps(String url, Map<String, String> body, String token) { @@ -126,6 +135,64 @@ return null; } + public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ + HttpsURLConnection connection = null; + try { + URL _url = new URL(url); + connection = (HttpsURLConnection) _url.openConnection(); + connection.setRequestMethod(method); + connection.setDoOutput(true); + connection.setDoInput(true); + connection.setUseCaches(false); + if(contentType != null){ + connection.setRequestProperty("Content-Type", contentType); + } + + if(ignoreSSL){ + //淇′换鎵�鏈塻sl璇佷功鍜屼富鏈� + TrustManager[] trustManagers = {new HttpsTrustManager()}; + SSLContext context = SSLContext.getInstance("TLS"); + context.init(null, trustManagers, new SecureRandom()); + connection.setSSLSocketFactory(context.getSocketFactory()); + connection.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String hostname, SSLSession session) { + return true; + } + }); + } + + + connection.connect(); + + if(data != null){ + OutputStream outputStream = connection.getOutputStream(); + outputStream.write(data.getBytes("utf-8")); + outputStream.close(); + } + + int responseCode = connection.getResponseCode(); + if (responseCode == HttpsURLConnection.HTTP_OK) { + InputStream is = connection.getInputStream(); + byte[] b = new byte[4096]; + ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length); + int len; + while ((len = is.read(b)) != -1) { + baos.write(b, 0, len); + } + is.close(); + return baos.toString("utf-8"); + } + return connection.getResponseMessage(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if(connection != null){ + connection.disconnect(); + } + } + return null; + } public static void main(String[] args) { @@ -136,5 +203,43 @@ } - } +class HttpsTrustManager implements X509TrustManager { + + private static TrustManager[] trustManagers = {new HttpsTrustManager()}; + + @Override + public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { + // TODO Auto-generated method stub + + } + + @Override + public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { + // TODO Auto-generated method stub + + } + + @Override + public X509Certificate[] getAcceptedIssuers() { + // TODO Auto-generated method stub + return null; + } + + public static void allowAllSSL() { + try { + SSLContext context = SSLContext.getInstance("TLS"); + context.init(null, trustManagers, new SecureRandom()); + HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory()); + HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String hostname, SSLSession session) { + return true; + } + }); + } catch (NoSuchAlgorithmException | KeyManagementException e) { + e.printStackTrace(); + } + } + +} \ No newline at end of file -- Gitblit v1.9.3