From 19763ebd20ad16435f3c1ccfdc8abd1518712cc1 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 24 Dec 2025 15:09:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java b/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
index 4d9065c..2fe171d 100644
--- a/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
+++ b/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
@@ -9,7 +9,10 @@
 import io.minio.errors.*;
 import io.minio.http.Method;
 import lombok.extern.slf4j.Slf4j;
+import okhttp3.ConnectionPool;
+import okhttp3.ConnectionSpec;
 import okhttp3.OkHttpClient;
+import okhttp3.TlsVersion;
 import org.springframework.stereotype.Service;
 
 import javax.net.ssl.SSLContext;
@@ -25,7 +28,9 @@
 import java.security.ProviderException;
 import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
+import java.util.Collections;
 import java.util.Objects;
+import java.util.concurrent.TimeUnit;
 
 import static com.ard.common.config.OssConfiguration.*;
 
@@ -46,7 +51,7 @@
     }
 
 
-    public CredentialsDTO getCredentials1111() {
+    public CredentialsDTO getCredentials111() {
         try {
             AssumeRoleProvider provider = new AssumeRoleProvider(endpoint, accessKey,
                     secretKey, Math.toIntExact(OssConfiguration.expire),
@@ -72,11 +77,20 @@
                         public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[]{}; }
                     }
             };
-            SSLContext sslContext = SSLContext.getInstance("TLS");
+            SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
             sslContext.init(null, trustAllCerts, new SecureRandom());
+
+            ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
+                    .tlsVersions(TlsVersion.TLS_1_2)
+                    .allEnabledCipherSuites()
+                    .build();
+
             OkHttpClient httpClient = new OkHttpClient.Builder()
-                    .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0])
+                    .sslSocketFactory(sslContext.getSocketFactory(),
+                            (X509TrustManager) trustAllCerts[0])
                     .hostnameVerifier((hostname, session) -> true)
+                    .connectionSpecs(Collections.singletonList(spec)) // ⭐关键
+                    .connectionPool(new ConnectionPool(0, 1, TimeUnit.SECONDS)) // ⭐禁用复用
                     .build();
 
             // 构建 AssumeRoleProvider,使用自定义 httpClient
@@ -179,6 +193,7 @@
             }
         }
     }
+
     @Override
     public void putObject(String bucket, String objectKey, InputStream input, String contentType) {
         try {
@@ -243,6 +258,11 @@
             OkHttpClient httpClient = new OkHttpClient.Builder()
                     .sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0])
                     .hostnameVerifier((hostname, session) -> true)
+                    .connectionSpecs(Collections.singletonList(
+                            new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
+                                    .tlsVersions(TlsVersion.TLS_1_2)   // 强制 TLS1.2
+                                    .build()
+                    ))
                     .build();
 
             this.client = MinioClient.builder()

--
Gitblit v1.9.3