From 77ce71f12721232beaaaa30e5641061cea6b6895 Mon Sep 17 00:00:00 2001 From: lijun Date: Thu, 26 Dec 2024 21:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9https=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=AF=81=E4=B9=A6=E4=B8=8D=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/quartz/task/AttendanceTask.java | 5 +- .../ruoyi/quartz/task/SSLSocketClient.java | 61 +++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SSLSocketClient.java diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AttendanceTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AttendanceTask.java index 6e9a6fc6..048576b7 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AttendanceTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AttendanceTask.java @@ -292,7 +292,10 @@ public class AttendanceTask { } public static String getResult(Request request) { - OkHttpClient client = new OkHttpClient(); + OkHttpClient client = new OkHttpClient.Builder() + .sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getX509TrustManager()) + .hostnameVerifier(SSLSocketClient.getHostnameVerifier()) + .build(); Response response; try { response = client.newCall(request).execute(); diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SSLSocketClient.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SSLSocketClient.java new file mode 100644 index 00000000..51e74a89 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SSLSocketClient.java @@ -0,0 +1,61 @@ +package com.ruoyi.quartz.task; + +import javax.net.ssl.*; +import java.security.*; +import java.security.cert.*; +import java.util.Arrays; + +public class SSLSocketClient { + //获取这个SSLSocketFactory + public static SSLSocketFactory getSSLSocketFactory() { + try { + SSLContext sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, getTrustManager(), new SecureRandom()); + return sslContext.getSocketFactory(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + //获取TrustManager + private static TrustManager[] getTrustManager() { + return new TrustManager[]{ + new X509TrustManager() { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[]{}; + } + } + }; + } + + //获取HostnameVerifier + public static HostnameVerifier getHostnameVerifier() { + return (s, sslSession) -> true; + } + + public static X509TrustManager getX509TrustManager() { + X509TrustManager trustManager = null; + try { + TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init((KeyStore) null); + TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); + if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) { + throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers)); + } + trustManager = (X509TrustManager) trustManagers[0]; + } catch (Exception e) { + e.printStackTrace(); + } + + return trustManager; + } +}