123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package com.vcarecity.publish.config;
-
- import org.apache.http.HttpHost;
- import org.apache.http.auth.AuthScope;
- import org.apache.http.auth.Credentials;
- 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.boot.autoconfigure.elasticsearch.rest.RestClientProperties;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.List;
-
- /**
- * @author Kerry on 19/12/11
- */
-
- @Configuration
- public class ElasticConfig {
-
- @Bean(destroyMethod = "close")
- public RestHighLevelClient restHighLevelClient(RestClientProperties properties) throws MalformedURLException {
-
- final List<String> uris = properties.getUris();
- HttpHost[] httpHosts = new HttpHost[uris.size()];
- for (int i = 0; i < uris.size(); i++) {
- final URL url = new URL(uris.get(i));
- httpHosts[i] = new HttpHost(url.getHost(), url.getPort(), url.getProtocol());
- }
-
- final RestClientBuilder builder = RestClient.builder(httpHosts);
-
- CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
- Credentials credentials = new UsernamePasswordCredentials(properties.getUsername(), properties.getPassword());
- credentialsProvider.setCredentials(AuthScope.ANY, credentials);
-
- builder.setHttpClientConfigCallback(http -> {
- http.setDefaultCredentialsProvider(credentialsProvider);
- return http;
- });
-
- builder.setRequestConfigCallback(requestBuilder -> {
- requestBuilder.setConnectTimeout((int) properties.getConnectionTimeout().getSeconds());
- return requestBuilder;
- });
-
- return new RestHighLevelClient(builder);
- }
-
- }
|