From 0cba43643530112bca5227466d96d3f2b0d7ebac Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Tue, 23 May 2023 16:28:08 +0800 Subject: [PATCH] =?UTF-8?q?ES=E5=A2=9E=E5=8A=A0=E5=AF=86=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=9D=E5=A7=8B=E5=8C=96=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=88=E6=97=A0YML=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ElasticsearchMonitorProperties.java | 23 +++++++++++++++++++ .../util/ElasticsearchClientPoolFactory.java | 12 +++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/entity/ElasticsearchMonitorProperties.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/entity/ElasticsearchMonitorProperties.java index a6c6d6e..c4a5208 100644 --- a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/entity/ElasticsearchMonitorProperties.java +++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/entity/ElasticsearchMonitorProperties.java @@ -34,6 +34,13 @@ public class ElasticsearchMonitorProperties { @Value("${elasticsearch.maxConnectPerRoute}") private int maxConnectPerRoute; + @Value("${elasticsearch.username}") + private String userName; + + @Value("${elasticsearch.password}") + private String password; + + public ElasticsearchMonitorProperties() { } @@ -45,6 +52,22 @@ public class ElasticsearchMonitorProperties { this.schema = schema; } + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + public String getAddress() { return address; } diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/util/ElasticsearchClientPoolFactory.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/util/ElasticsearchClientPoolFactory.java index 7f6adff..18e0586 100644 --- a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/util/ElasticsearchClientPoolFactory.java +++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/elasticsearch/util/ElasticsearchClientPoolFactory.java @@ -6,21 +6,26 @@ import org.apache.commons.pool2.PooledObject; import org.apache.commons.pool2.PooledObjectFactory; import org.apache.commons.pool2.impl.DefaultPooledObject; import org.apache.http.HttpHost; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.time.Duration; /** * EliasticSearch连接池工厂对象 - * */ @Slf4j @Component public class ElasticsearchClientPoolFactory implements PooledObjectFactory { + @Autowired private ElasticsearchMonitorProperties esProperties; @@ -44,6 +49,8 @@ public class ElasticsearchClientPoolFactory implements PooledObjectFactory makeObject() { RestHighLevelClient restHighLevelClient = null; + final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esProperties.getUserName(), esProperties.getPassword())); try { String[] urlArr = esProperties.getAddress().split(","); HttpHost[] httpPostArr = new HttpHost[urlArr.length]; @@ -52,8 +59,10 @@ public class ElasticsearchClientPoolFactory implements PooledObjectFactory { requestConfigBuilder.setConnectTimeout(esProperties.getConnectTimeout()); @@ -68,6 +77,7 @@ public class ElasticsearchClientPoolFactory implements PooledObjectFactory Duration.ofMinutes(5).toMillis())); + httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); return httpClientBuilder; }); restHighLevelClient = new RestHighLevelClient(builder);