diff --git a/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java b/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java index ac6e4552fc..8454df061b 100755 --- a/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java +++ b/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java @@ -7,22 +7,26 @@ import org.apache.http.client.entity.EntityBuilder; import org.apache.http.client.entity.UrlEncodedFormEntity; 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.HttpClientConnectionManager; +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.TrustSelfSignedStrategy; -import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.ContentType; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; -import org.apache.http.ssl.SSLContexts; +import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLContext; +import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -42,11 +46,15 @@ public class HttpClientUtil { private static CloseableHttpClient buildHttpClient(String url) { try { if (url.startsWith(HTTPS)) { - // https 增加信任设置 - TrustStrategy trustStrategy = new TrustSelfSignedStrategy(); - SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(trustStrategy).build(); - HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE; - return HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(hostnameVerifier).build(); + SSLContextBuilder builder = new SSLContextBuilder(); + builder.loadTrustMaterial(null, (X509Certificate[] x509Certificates, String s) -> true); + SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(builder.build(), new String[]{"TLSv1.1", "TLSv1.2", "SSLv3"}, null, NoopHostnameVerifier.INSTANCE); + Registry registry = RegistryBuilder.create() + .register("http", new PlainConnectionSocketFactory()) + .register("https", socketFactory).build(); + HttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(registry); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager).build(); + return httpClient; } else { // http return HttpClientBuilder.create().build(); diff --git a/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java b/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java index 6d8b4f0150..017e6eee20 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; import java.util.*; +import java.util.stream.Collectors; @Service("es") public class EsProvider extends DatasourceProvider { @@ -181,6 +182,7 @@ public class EsProvider extends DatasourceProvider { try { String response = exexQuery(datasourceRequest, "show tables", "?format=json"); tables = fetchTables(response); + tables = tables.stream().filter(table -> !table.startsWith(".")).collect(Collectors.toList()); } catch (Exception e) { DataEaseException.throwException(e); }