LingxinMeng 2 vuotta sitten
vanhempi
commit
b561762199

+ 54 - 25
api-common/src/main/java/api/common/util/HttpUtil.java

@@ -5,24 +5,19 @@ import org.apache.http.client.config.RequestConfig;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
-import org.apache.http.config.Registry;
-import org.apache.http.config.RegistryBuilder;
-import org.apache.http.conn.socket.ConnectionSocketFactory;
-import org.apache.http.conn.socket.PlainConnectionSocketFactory;
 import org.apache.http.conn.ssl.NoopHostnameVerifier;
 import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.apache.http.ssl.SSLContextBuilder;
 import org.apache.http.util.EntityUtils;
 
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
 import java.io.IOException;
 import java.io.InputStream;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
+import java.security.cert.X509Certificate;
 import java.util.Map;
 
 /**
@@ -35,22 +30,56 @@ import java.util.Map;
 @Slf4j
 public class HttpUtil {
 
-    public static CloseableHttpClient getHttpClient() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
+//    public static CloseableHttpClient getHttpClient() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
+//
+//        PlainConnectionSocketFactory plainConnectionSocketFactory = new PlainConnectionSocketFactory();
+//        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
+//                SSLContextBuilder.create().loadTrustMaterial(null, (x509Certificates, s) -> true).build(), // 全部信任 不做身份鉴定
+//                new String[]{"SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.2"},
+//                null,
+//                NoopHostnameVerifier.INSTANCE);
+//        Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
+//                .register("http", plainConnectionSocketFactory)
+//                .register("https", sslConnectionSocketFactory)
+//                .build();
+//        PoolingHttpClientConnectionManager pool = new PoolingHttpClientConnectionManager(registry);
+//        pool.setMaxTotal(300);
+//        pool.setDefaultMaxPerRoute(300);
+//        return HttpClients.custom().setConnectionManager(pool).build();
+//    }
 
-        PlainConnectionSocketFactory plainConnectionSocketFactory = new PlainConnectionSocketFactory();
-        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
-                SSLContextBuilder.create().loadTrustMaterial(null, (x509Certificates, s) -> true).build(), // 全部信任 不做身份鉴定
-                new String[]{"SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.2"},
-                null,
-                NoopHostnameVerifier.INSTANCE);
-        Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
-                .register("http", plainConnectionSocketFactory)
-                .register("https", sslConnectionSocketFactory)
-                .build();
-        PoolingHttpClientConnectionManager pool = new PoolingHttpClientConnectionManager(registry);
-        pool.setMaxTotal(300);
-        pool.setDefaultMaxPerRoute(300);
-        return HttpClients.custom().setConnectionManager(pool).build();
+    public static CloseableHttpClient getHttpClient() {
+        return getCloseableHttpClient();
+    }
+
+
+    private static CloseableHttpClient getCloseableHttpClient() {
+        try {
+            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();
+            return HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();
+        } catch (Exception exception) {
+            throw new RuntimeException("获取 httpClient 失败。", exception);
+        }
     }
 
     public static RequestConfig getRequestConfig() {
@@ -86,7 +115,7 @@ public class HttpUtil {
                 result = EntityUtils.toString(response.getEntity());
             } else {
                 log.error(response.getEntity().toString());
-                throw new RuntimeException("get() 请求错误:" + response);
+                throw new RuntimeException("请求错误:" + response);
             }
         } catch (org.apache.http.conn.ConnectTimeoutException cte) {
             log.debug(url + " 请求超时。", cte);

+ 29 - 4
api-common/src/main/java/api/common/util/JgitUtil.java

@@ -25,10 +25,35 @@ import java.util.Map;
 public class JgitUtil {
 
 
-    public static Map<String, Ref> testConnection(String remoteUrl, String username, String password) throws GitAPIException {
-       UsernamePasswordCredentialsProvider provider = new UsernamePasswordCredentialsProvider(username,password);
-       Map<String, Ref> asMap = Git.lsRemoteRepository().setRemote(remoteUrl).setCredentialsProvider(provider).callAsMap();
-       return asMap;
+    public static Map<String, Ref> testConnection(String remoteUrl, String username, String password) {
+        try {
+            return testPublicConnection(remoteUrl);
+        } catch (Exception e) {
+            try {
+                return testPrivateConnection(remoteUrl,username,password);
+            } catch (Exception ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
+
+
+    public static Map<String, Ref> testPrivateConnection(String remoteUrl, String username, String password) {
+        try {
+            UsernamePasswordCredentialsProvider provider = new UsernamePasswordCredentialsProvider(username,password);
+            return Git.lsRemoteRepository().setRemote(remoteUrl).setCredentialsProvider(provider).callAsMap();
+        } catch (GitAPIException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static Map<String, Ref> testPublicConnection(String remoteUrl) {
+        try {
+            return Git.lsRemoteRepository().setRemote(remoteUrl).callAsMap();
+        } catch (GitAPIException e) {
+            throw new RuntimeException(e);
+        }
     }
 
     public static Map<String, Ref> testConnectionByToken(String remoteUrl, String gitToken) throws GitAPIException {

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/AlgorithmScheduler.java

@@ -38,7 +38,7 @@ public class AlgorithmScheduler {
         //1 查询已经导入的算法,根据创建时间排序
         List<AlgorithmEntity> algorithmImportedList = algorithmMapper.selectByDockerImport("1");
         int algorithmImportNumber = algorithmImportedList.size();
-        log.info("AlgorithmScheduler--removeAlgorithmImage kubernetes 各个节点已经导入 " + algorithmImportNumber + " 个算法。");
+        log.info("kubernetes 各个节点已经导入 " + algorithmImportNumber + " 个算法。");
         if (algorithmImportNumber < maxAlgorithmImage) {
             return;
         }

+ 6 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/service/impl/AlgorithmServiceImpl.java

@@ -220,15 +220,15 @@ public class AlgorithmServiceImpl implements AlgorithmService {
     }
 
     @Override
-    public ResponseBodyVO shareAlgorithm(AlgorithmParameter param) {
+    public ResponseBodyVO<String> shareAlgorithm(AlgorithmParameter param) {
         if (isEmpty(param.getId())) {
-            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
         } else {
             String algorithmId = param.getId();
             AlgorithmPO po = algorithmMapper.selectDetailsById(algorithmId);
             List<AlgorithmPO> algorithmPOS = algorithmMapper.selectSharedAlgorithmName(po.getAlgorithmName());
             if (algorithmPOS != null && algorithmPOS.size() > 0) {
-                return new ResponseBodyVO(ResponseBodyVO.Response.SERVER_FAILURE, "该算法名称已存在, 无法分享!");
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "该算法名称已存在, 无法分享!", null);
             } else {
                 po.setShare("1");
                 po.setId(StringUtil.getRandomUUID());
@@ -236,9 +236,9 @@ public class AlgorithmServiceImpl implements AlgorithmService {
                 int add = algorithmMapper.add(po);
                 if (add > 0) {
                     LogUtil.share();
-                    return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, "分享成功");
+                    return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, "分享成功", null);
                 }
-                return new ResponseBodyVO(ResponseBodyVO.Response.SERVER_FAILURE, "分享失败");
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "分享失败", null);
 
             }
         }
@@ -250,6 +250,7 @@ public class AlgorithmServiceImpl implements AlgorithmService {
             JgitUtil.testConnection(param.getGitUrl().replace(gitConfiguration.getName(), gitConfiguration.getUrl()), param.getGitUserName(), param.getGitPassword());
             return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, "连接成功");
         } catch (Exception e) {
+            log.error(e.getMessage());
             return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "连接失败!");
         }
     }

+ 1 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/common/configuration/TransactionConfiguration.java

@@ -69,8 +69,7 @@ public class TransactionConfiguration {
         NameMatchTransactionAttributeSource source = new NameMatchTransactionAttributeSource();
         source.setNameMap(txMap);
 
-        TransactionInterceptor txAdvice = new TransactionInterceptor(transactionManager, source);
-        return txAdvice;
+        return new TransactionInterceptor(transactionManager, source);
     }
 
     @Bean

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java

@@ -25,6 +25,7 @@ import feign.Response;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
@@ -361,6 +362,7 @@ public class SceneNaturalService {
     }
 
     @SneakyThrows
+    @Transactional
     public void deleteSceneNatural(SceneNaturalPO params) {
         //1 获取参数
         String sceneName = params.getNaturalName(); // 场景名称

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/service/SceneImportService.java

@@ -23,6 +23,7 @@ import com.css.simulation.resource.system.mapper.SceneImportMapper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -105,6 +106,7 @@ public class SceneImportService {
         return new PageInfo<>(list);
     }
 
+    @Transactional
     public void deleteTask(String taskId) {
         //1 根据任务 id 查询场景类型
         // String sceneType = sceneImportMapper.selectSceneTypeByTaskId(taskId);