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);