Java Low Level REST Client 官网说明-鉴权

本文详细介绍了如何在Elasticsearch中使用基本鉴权、access token和API key进行身份验证,包括设置默认凭证、取消抢先鉴权,并展示了不同认证方式的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本鉴权

当通过构建器构建一个restClient的时候配置基本鉴权可以通过提供一个HttpClientConfigCallback实现。

这个接口有一个方法,该方法能够接收一个org.apache.http.impl.nio.client.HttpAsyncClientBuilder实例作为一个参数,该方法能返回HttpAsyncClientBuilder类型对象。

这个HttpAsyncClientBuilder能被修改并返回。下面的例子我们设置一个默认的要求基本健全的验证

final CredentialsProvider credentialsProvider =

new BasicCredentialsProvider();

credentialsProvider.setCredentials(AuthScope.ANY,

new UsernamePasswordCredentials("user", "test-user-password"));

RestClientBuilder builder = RestClient.builder(

new HttpHost("localhost", 9200))

.setHttpClientConfigCallback(new HttpClientConfigCallback() {

@Override

public HttpAsyncClientBuilder customizeHttpClient(

HttpAsyncClientBuilder httpClientBuilder) {

return httpClientBuilder

.setDefaultCredentialsProvider(credentialsProvider);

}

});

抢先先鉴权能被作废,抢先验证意味着每个请求都能不适用鉴权头文件去通过返回401确认是否被接受

他将会重新发送额外相同的具有基础鉴权头信息的请求,如果你虚妄这么做你能通过HttpAsyncClientBuilder 来作废抢先鉴权

final CredentialsProvider credentialsProvider =

new BasicCredentialsProvider();

credentialsProvider.setCredentials(AuthScope.ANY,

new UsernamePasswordCredentials("user", "test-user-password"));

RestClientBuilder builder = RestClient.builder(

new HttpHost("localhost", 9200))

.setHttpClientConfigCallback(new HttpClientConfigCallback() {

@Override

public HttpAsyncClientBuilder customizeHttpClient(

HttpAsyncClientBuilder httpClientBuilder) {

httpClientBuilder.disableAuthCaching(); // 作废抢先鉴权

return httpClientBuilder

.setDefaultCredentialsProvider(credentialsProvider);

}

});

Elasticsearch Token服务鉴权

如果你想通过一个Elasticsearch access token 来鉴权的话 设置相关的http 请求头文件,如果客户端是单个用户的代理,你能设置需要的鉴权头文件作为一个默认的头文件,如下:

RestClientBuilder builder = RestClient.builder(

new HttpHost("localhost", 9200, "http"));

Header[] defaultHeaders =

new Header[]{new BasicHeader("Authorization",

"Bearer u6iuAxZ0RG1Kcm5jVFI4eU4tZU9aVFEwT2F3")};

builder.setDefaultHeaders(defaultHeaders);

Elasticsearch API key 鉴权

如果你想使用一个Elasticsearch API key去鉴权,设置有意义的http 请求头,如果client是单个用户的代理,你能设置需要的鉴权头信息作为默认的头信息,如下:

String apiKeyId = "uqlEyn8B_gQ_jlvwDIvM";

String apiKeySecret = "HxHWk2m4RN-V_qg9cDpuX";

String apiKeyAuth =

Base64.getEncoder().encodeToString(

(apiKeyId + ":" + apiKeySecret)

.getBytes(StandardCharsets.UTF_8));

RestClientBuilder builder = RestClient.builder(

new HttpHost("localhost", 9200, "http"));

Header[] defaultHeaders =

new Header[]{new BasicHeader("Authorization",

"ApiKey " + apiKeyAuth)};

builder.setDefaultHeaders(defaultHeaders);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值