ElasticSearch開啟X-pack權(quán)限認(rèn)證后,連接es就存在用戶名和密碼的校驗(yàn),如果連接時(shí)沒(méi)有設(shè)置賬號(hào)及密碼,則會(huì)出現(xiàn)無(wú)權(quán)限的情況。本文就講述spring boot如何在連接es時(shí)設(shè)置用戶名密碼,主要是RestHighLevelClient配置信息的修改。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-511184.html
1 添加pom依賴
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.8.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.8.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.8.1</version>
</dependency>
2 原RestHighLevelClient設(shè)置
@Bean
public RestHighLevelClient getRestHighLevelClient() {
RestClientBuilder builder = RestClient.builder(hostList.toArray(new HttpHost[0]));
// 異步httpclient連接延時(shí)配置
builder.setRequestConfigCallback(requestConfigBuilder -> {
requestConfigBuilder.setConnectTimeout(connectTimeOut);
requestConfigBuilder.setSocketTimeout(socketTimeOut);
requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut);
return requestConfigBuilder;
});
// 異步httpclient連接數(shù)配置
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.setMaxConnTotal(maxConnectNum);
httpClientBuilder.setMaxConnPerRoute(maxConnectPerRoute);
return httpClientBuilder;
});
RestHighLevelClient client = new RestHighLevelClient(builder);
return client;
}
3 現(xiàn)RestHighLevelClient設(shè)置
@Bean
public RestHighLevelClient getRestHighLevelClient() {
RestClientBuilder builder = RestClient.builder(hostList.toArray(new HttpHost[0]));
// 異步httpclient連接延時(shí)配置
builder.setRequestConfigCallback(requestConfigBuilder -> {
requestConfigBuilder.setConnectTimeout(connectTimeOut);
requestConfigBuilder.setSocketTimeout(socketTimeOut);
requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut);
return requestConfigBuilder;
});
// 用戶認(rèn)證對(duì)象
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
// 設(shè)置賬號(hào)密碼
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName,password));
// 異步httpclient連接數(shù)配置
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.setMaxConnTotal(maxConnectNum);
httpClientBuilder.setMaxConnPerRoute(maxConnectPerRoute);
// 設(shè)置賬號(hào)密碼
httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
return httpClientBuilder;
});
builder.setHttpClientConfigCallback(httpAsyncClientBuilder ->
httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
RestHighLevelClient client = new RestHighLevelClient(builder);
return client;
}
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-511184.html
到了這里,關(guān)于SpringBoot+ElasticSearch+X-pack的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!