fix: 修正feign client 调用异常问题
diff --git a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/base/configuration/BaseFeignClientConfiguration.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/base/configuration/BaseFeignClientConfiguration.java
index 68e44f9..1e4e614 100644
--- a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/base/configuration/BaseFeignClientConfiguration.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/base/configuration/BaseFeignClientConfiguration.java
@@ -1,6 +1,8 @@
 package com.supwisdom.institute.backend.admin.aggr.apis.remote.base.configuration;
 
+import org.apache.http.conn.HttpClientConnectionManager;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory;
 import org.springframework.context.annotation.Bean;
 
 import com.supwisdom.institute.backend.common.core.feign.FeignClientBuilder;
@@ -16,7 +18,9 @@
       @Value("${sw-backend-base-api.client-auth.key-store:}") String keyStore,
       @Value("${sw-backend-base-api.client-auth.key-store-password:}") String keyStorePassword,
       @Value("${sw-backend-base-api.client-auth.trust-store:}") String trustStore,
-      @Value("${sw-backend-base-api.client-auth.trust-store-password:}") String trustStorePassword) {
+      @Value("${sw-backend-base-api.client-auth.trust-store-password:}") String trustStorePassword,
+      ApacheHttpClientFactory httpClientFactory,
+      HttpClientConnectionManager httpClientConnectionManager) {
     
     return FeignClientBuilder.builder()
         .enabled(enabled)
@@ -26,7 +30,7 @@
         .trustStore(trustStore)
         .trustStorePassword(trustStorePassword)
         .build()
-        .client();
+        .apacheHttpClient(httpClientFactory, httpClientConnectionManager);
   }
 
 }
diff --git a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/configuration/BizFeignClientConfiguration.java b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/configuration/BizFeignClientConfiguration.java
index 88f5cda..ca60e7d 100644
--- a/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/configuration/BizFeignClientConfiguration.java
+++ b/aggr/admin/src/main/java/com/supwisdom/institute/backend/admin/aggr/apis/remote/biz/configuration/BizFeignClientConfiguration.java
@@ -1,6 +1,8 @@
 package com.supwisdom.institute.backend.admin.aggr.apis.remote.biz.configuration;
 
+import org.apache.http.conn.HttpClientConnectionManager;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory;
 import org.springframework.context.annotation.Bean;
 
 import com.supwisdom.institute.backend.common.core.feign.FeignClientBuilder;
@@ -16,7 +18,9 @@
       @Value("${sw-backend-biz-api.client-auth.key-store:}") String keyStore,
       @Value("${sw-backend-biz-api.client-auth.key-store-password:}") String keyStorePassword,
       @Value("${sw-backend-biz-api.client-auth.trust-store:}") String trustStore,
-      @Value("${sw-backend-biz-api.client-auth.trust-store-password:}") String trustStorePassword) {
+      @Value("${sw-backend-biz-api.client-auth.trust-store-password:}") String trustStorePassword,
+      ApacheHttpClientFactory httpClientFactory,
+      HttpClientConnectionManager httpClientConnectionManager) {
     
     return FeignClientBuilder.builder()
       .enabled(enabled)
@@ -26,7 +30,7 @@
       .trustStore(trustStore)
       .trustStorePassword(trustStorePassword)
       .build()
-      .client();
+      .apacheHttpClient(httpClientFactory, httpClientConnectionManager);
   }
 
 }
diff --git a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/feign/FeignClientBuilder.java b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/feign/FeignClientBuilder.java
index 181ad10..d970094 100644
--- a/common/core/src/main/java/com/supwisdom/institute/backend/common/core/feign/FeignClientBuilder.java
+++ b/common/core/src/main/java/com/supwisdom/institute/backend/common/core/feign/FeignClientBuilder.java
@@ -1,16 +1,18 @@
 package com.supwisdom.institute.backend.common.core.feign;
 
 import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
 
 import lombok.extern.slf4j.Slf4j;
 
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.conn.HttpClientConnectionManager;
 import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.ssl.SSLContextBuilder;
 import org.apache.http.ssl.SSLContexts;
+import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory;
 import org.springframework.util.ResourceUtils;
 
-import feign.Client;
 import feign.httpclient.ApacheHttpClient;
 
 @Slf4j
@@ -25,7 +27,9 @@
   private String trustStore;
   private String trustStorePassword;
   
-  public Client client() {
+  public ApacheHttpClient apacheHttpClient(
+      ApacheHttpClientFactory httpClientFactory,
+      HttpClientConnectionManager httpClientConnectionManager) {
 
     if (!enabled) {
       return new ApacheHttpClient();
@@ -54,9 +58,21 @@
         
         SSLContext sslContext = sslContextBuilder.build();
         
-        SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
+        //SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
+        
+        RequestConfig defaultRequestConfig = RequestConfig.custom()
+            .setConnectTimeout(12000)
+            .setRedirectsEnabled(true)
+            .build();
 
-        Client trustSSLSockets = new Client.Default(sslSocketFactory, new NoopHostnameVerifier());  // FIXME: feign Client
+        CloseableHttpClient httpClient = httpClientFactory.createBuilder().
+            setSSLContext(sslContext).
+            setSSLHostnameVerifier(new NoopHostnameVerifier()).   // FIXME: HostnameVerifier
+            setConnectionManager(httpClientConnectionManager).
+            setDefaultRequestConfig(defaultRequestConfig).build();
+        
+
+        ApacheHttpClient trustSSLSockets = new ApacheHttpClient(httpClient);
         log.info("feignClient load with ssl.");
         return trustSSLSockets;
       } catch (Exception e) {