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; + } +}