J'utilise une instance elasticsearch dans une instance de cloud élastique sécurisée avec X-PACK.
J'utilisais le client de repos de haut niveau auparavant sans aucun problème, mais je n'arrive pas à trouver comment envoyer l'en-tête d'authentification de base dessus.
J'ai essayé de mettre les informations d'identification dans l'URL, mais il ne semble pas pouvoir se connecter dans ce cas.
Quelqu'un a-t-il réussi à se connecter à un elasticsearch sécurisé avec un client de repos de haut niveau?
À votre santé,
Vous pouvez spécifier le nom d'utilisateur et le mot de passe pour le client Java Low Level REST et passer le niveau Low REST Client au client RestHighLevelClient
instance.
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});
RestHighLevelClient client = new RestHighLevelClient(builder);
Références: