From 8c77574131993b49e3c40340273db438574a7a43 Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Mon, 31 Jul 2023 16:25:52 +0800 Subject: [PATCH] updates --- .../org/jeecg/config/RestTemplateConfig.java | 2 +- .../src/main/java/org/jeecg/config/SSL.java | 80 +++++++++++++++++++ .../modules/api/controller/ApiController.java | 2 +- 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/config/SSL.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/RestTemplateConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/RestTemplateConfig.java index 9c9d191..567d674 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/RestTemplateConfig.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/RestTemplateConfig.java @@ -35,7 +35,7 @@ public class RestTemplateConfig { @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory() { - SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + SSL factory = new SSL(); //ms毫秒 factory.setReadTimeout(5000); //ms毫秒 diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/SSL.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/SSL.java new file mode 100644 index 0000000..2bc8b86 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/SSL.java @@ -0,0 +1,80 @@ +package org.jeecg.config; + +/** + * @Description + * @Author ZhouWenTao + * @Date 2023/7/31 16:24 + */ +import java.io.IOException; +import java.net.HttpURLConnection; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + +import org.springframework.http.client.SimpleClientHttpRequestFactory; + +/** + * 跳过证书验证封装 + */ +public class SSL extends SimpleClientHttpRequestFactory { + + @Override + protected void prepareConnection(HttpURLConnection connection, String httpMethod) + throws IOException { + if (connection instanceof HttpsURLConnection) { + prepareHttpsConnection((HttpsURLConnection) connection); + } + super.prepareConnection(connection, httpMethod); + } + + private void prepareHttpsConnection(HttpsURLConnection connection) { + connection.setHostnameVerifier(new SkipHostnameVerifier()); + try { + connection.setSSLSocketFactory(createSslSocketFactory()); + } + catch (Exception ex) { + // Ignore + } + } + + private SSLSocketFactory createSslSocketFactory() throws Exception { + SSLContext context = SSLContext.getInstance("TLS"); + context.init(null, new TrustManager[] { new SkipX509TrustManager() }, + new SecureRandom()); + return context.getSocketFactory(); + } + + private class SkipHostnameVerifier implements HostnameVerifier { + + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + + } + + private static class SkipX509TrustManager implements X509TrustManager { + + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[0]; + } + + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) { + } + + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java index 2c424da..4cd5dcf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java @@ -157,7 +157,7 @@ public class ApiController { public JSONObject imgNotify() { String ss = "{\t\"requestId\":\"10001\",\t\"result\":{\t\t\"ocrResult\":[\t\t\t{\t\t\t\t\"tag\":\"hospitalName\",\t\t\t\t\"inputText\":\"仁和医院\",\t\t\t\t\"ocrText\":\"仁和医院\",\t\t\t\t\"ocrPrecisionRate\":0.8,\t\t\t\t\"sourceImage\":{\t\t\t\t\t\"fileName\":\"test1.png\",\t\t\t\t\t\"path\":\"/usr/local/ocr/test1.png\"\t\t\t\t},\t\t\t\t\"failureReason\":\"\"\t\t\t}\t\t],\t\t\"ruleValidation\":false,\t\t\"retrieveReviewCompliance\":\"80\",\t\t\"imageTagRetrievePercentage\":\"66.6\",\t\t\"failureReason\":\"医生名称不匹配\"\t}}"; JSONObject requestBody = JSONObject.parseObject(ss); - JSONObject semanticResponseJson = RestUtil.postTest("https://192.168.1.21:8686/api/task/image/ocr/callback", requestBody); + JSONObject semanticResponseJson = RestUtil.post("https://192.168.1.21:8686/api/task/image/ocr/callback", requestBody); return semanticResponseJson; /*String requestId = jsonObject.getString("requestId"); String fileName = jsonObject.getString("fileName");