Two authentication login methods of ES: JAVA REST Client/HTTP Client

1 JAVA REST Client set identity authentication

The es request verification method sent by RestHighLevelClient:

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
/** 设置账号密码 */
credentialsProvider.setCredentials(AuthScope.ANY,
        new UsernamePasswordCredentials(ElasticsearchConstants.ELASTIC_USER_NAME, ElasticsearchConstants.ELASTIC_PASSWORD));
RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(new HttpHost(ElasticsearchConstants.ELASTIC_SEARCH_HOST, ElasticsearchConstants.ELASTIC_SEARCH_PORT, "http"))
        .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
            }
        })
);

2 HTTP Client setting authentication

The es request authentication method sent directly through http:

CloseableHttpClient httpClient = HttpClients.createDefault();

//待连接的es-url
String url ="http://192.168.1.1:9200"

HttpPut httpGet = new HttpGet(url);

RequestConfig requestConfig = RequestConfig.custom()
                            .setConnectTimeout(35000)
                            .setConnectionRequestTimeout(35000)
                            .setSocketTimeout(60000).build();

httpGet.setConfig(requestConfig);

//添加表头配置
httpGet.setHeader("Content-type", "application/json");
httpGet.setHeader("Accept", "application/json");
httpGet.setHeader("DataEncoding", "UTF-8");
 
// 加es身份认证
HttpHost targetHost = new HttpHost("192.168.1.1", 9200, "http");
/** 设置账号密码 */
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
                        new UsernamePasswordCredentials("es_user", "es_password"));
 
// Create AuthCache instance
AuthCache authCache = new BasicAuthCache();

// Generate BASIC scheme object and add it to the local auth cache
BasicScheme basicAuth = new BasicScheme();

authCache.put(targetHost, basicAuth);
 
// Add AuthCache to the execution context
HttpClientContext context = HttpClientContext.create();
context.setCredentialsProvider(credentialsProvider);
context.setAuthCache(authCache);
 
CloseableHttpResponse httpResponse = httpClient.execute(httpGet, context);

//获取连接状态码 (success:200;failed:401)
int statusCode = httpResponse.getStatusLine().getStatusCode()
//验证
if(statusCode == 200){
  System.out.println("ES连接成功!")
}else{
   System.out.println("ES连接失败!")
}

Guess you like

Origin blog.csdn.net/lukabruce/article/details/128313255