孟令鑫 1 rok temu
rodzic
commit
642e901944

+ 11 - 0
api-common/src/main/java/api/common/util/HttpUtil.java

@@ -140,8 +140,11 @@ public class HttpUtil {
      */
     public static String get(String url) {
         log.info("发送HTTP请求:" + url);
+
         String result;
+        CloseableHttpClient closeableHttpClient = null;
         try {
+            closeableHttpClient = getCloseableHttpClient();
             //1 创建 GET 对象
             HttpGet get = new HttpGet(url);
             get.setConfig(getRequestConfig());
@@ -149,6 +152,12 @@ public class HttpUtil {
             result = EntityUtils.toString(getCloseableHttpClient().execute(get).getEntity());
         } catch (IOException e) {
             throw new RuntimeException(e);
+        } finally {
+            try {
+                closeableHttpClient.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
         }
         return result;
     }
@@ -178,11 +187,13 @@ public class HttpUtil {
                 log.error(response.getEntity().toString());
                 throw new RuntimeException("请求错误:" + response);
             }
+
         } catch (org.apache.http.conn.ConnectTimeoutException cte) {
             log.info(url + " 请求超时。", cte);
         } catch (Exception e) {
             log.info("请求 " + url + " 失败。", e);
         }
+
         return result;
     }
 

+ 0 - 62
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/configuration/http/HttpConfiguration.java

@@ -1,62 +0,0 @@
-package com.css.simulation.oauth.client.configuration.http;
-
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.X509Certificate;
-
-@Configuration
-public class HttpConfiguration {
-    @Bean
-    public CloseableHttpClient closeableHttpClient() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
-
-        SSLContext sslContext = SSLContext.getInstance("TLS");
-        X509TrustManager x509TrustManager = new X509TrustManager() {
-            @Override
-            public X509Certificate[] getAcceptedIssuers() {
-                return null;
-            }
-
-            @Override
-            public void checkClientTrusted(X509Certificate[] arg0, String arg1) {
-            }
-
-            @Override
-            public void checkServerTrusted(X509Certificate[] arg0, String arg1) {
-            }
-        };
-        sslContext.init(null, new TrustManager[]{x509TrustManager}, null);
-        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
-        PoolingHttpClientConnectionManager pool = new PoolingHttpClientConnectionManager();
-        pool.setMaxTotal(300);
-        pool.setDefaultMaxPerRoute(300);
-        return HttpClients.custom()
-                .setConnectionManager(pool)
-                .setSSLSocketFactory(sslConnectionSocketFactory)
-                .build();
-    }
-
-
-    @Bean
-    public RequestConfig requestConfig() {
-        return RequestConfig.custom()
-                .setSocketTimeout(5000)
-                .setConnectTimeout(5000)
-                .setConnectionRequestTimeout(5000)
-                .setRedirectsEnabled(false)
-                .setExpectContinueEnabled(false)
-                .build();
-    }
-}

+ 10 - 12
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/controller/SignController.java

@@ -19,8 +19,6 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.impl.client.CloseableHttpClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Controller;
@@ -48,10 +46,10 @@ public class SignController {
     @Resource
     private LogLoginMapper logLoginMapper;
 
-    @Resource
-    private CloseableHttpClient closeableHttpClient;
-    @Resource
-    private RequestConfig requestConfig;
+    //    @Resource
+//    private CloseableHttpClient closeableHttpClient;
+//    @Resource
+//    private RequestConfig requestConfig;
     @Resource
     private OauthParameter oauthParameter;
 
@@ -113,7 +111,7 @@ public class SignController {
                     "&code=" + encodeCode +
                     "&grant_type=authorization_code";
             log.info("根据编码之后的 code 获取众工业平台 access_token 的地址为:" + zoogooyTokenUrl);
-            String zoogooyTokenJson = HttpUtil.get(closeableHttpClient, requestConfig, zoogooyTokenUrl);
+            String zoogooyTokenJson = HttpUtil.get(zoogooyTokenUrl);
             log.info("根据编码之后的 code 获取众工业平台 access_token 的结果为:" + zoogooyTokenJson);
             ObjectMapper objectMapper1 = new ObjectMapper();
             JsonNode tokenRoot = objectMapper1.readTree(zoogooyTokenJson);
@@ -168,7 +166,7 @@ public class SignController {
           "nowTime" : "2022-03-28 11:11:09"
         }
          */
-            String zoogooyUserJson = HttpUtil.get(closeableHttpClient, requestConfig, zoogooyUserUrl);
+            String zoogooyUserJson = HttpUtil.get(zoogooyUserUrl);
             ObjectMapper objectMapper2 = new ObjectMapper();
             JsonNode userRoot = objectMapper2.readTree(zoogooyUserJson);
             if (!userRoot.path("success").asBoolean()) {
@@ -221,7 +219,7 @@ public class SignController {
                     "&username=" + username +
                     "&password=" + password;
             log.info("获取仿真云平台 token 信息:" + simulationTokenUrl);
-            simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
+            simulationToken = HttpUtil.get(simulationTokenUrl);
             log.info("仿真云平台 token 信息为:" + simulationToken);
             redisTemplate.opsForValue().set("code:" + code + ":ticket:" + ticket, simulationToken, Duration.ofMinutes(30L));
         }
@@ -308,7 +306,7 @@ public class SignController {
                 "&client_secret=" + oauthParameter.getSimulationClientSecret() +
                 "&username=" + username +
                 "&password=" + password;
-        String simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
+        String simulationToken = HttpUtil.get(simulationTokenUrl);
         SimulationTokenVO simulationTokenVO = JsonUtil.jsonToBean(simulationToken, SimulationTokenVO.class);
         //记录登录成功日志
         po.setUserId(userVO.getId());
@@ -371,7 +369,7 @@ public class SignController {
                 "&client_secret=" + oauthParameter.getSimulationClientSecret() +
                 "&username=" + username +
                 "&password=" + password;
-        String simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
+        String simulationToken = HttpUtil.get(simulationTokenUrl);
         SimulationTokenVO simulationTokenVO = JsonUtil.jsonToBean(simulationToken, SimulationTokenVO.class);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, simulationTokenVO);
     }
@@ -393,7 +391,7 @@ public class SignController {
                 "&client_secret=" + oauthParameter.getSimulationClientSecret() +
                 "&refresh_token=" + refreshToken;
         try {
-            String simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
+            String simulationToken = HttpUtil.get(simulationTokenUrl);
             SimulationTokenVO simulationTokenVO = JsonUtil.jsonToBean(simulationToken, SimulationTokenVO.class);
             return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, simulationTokenVO);
         } catch (Exception e) {