From e294caf014702409a48d50fa982a010eaca1d54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Thu, 7 Oct 2021 16:15:38 +0200 Subject: [PATCH] Enabled to use apikey --- .../search/v1/server/client/ElasticsearchClient.java | 10 ++++++++++ .../v1/server/settings/ElasticsearchSettings.java | 1 + .../src/main/resources/application.yml | 1 + 3 files changed, 12 insertions(+) diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/ElasticsearchClient.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/ElasticsearchClient.java index 08693ab..00aeffa 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/ElasticsearchClient.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/ElasticsearchClient.java @@ -1,14 +1,18 @@ package com.iqser.red.service.search.v1.server.client; import com.iqser.red.service.search.v1.server.settings.ElasticsearchSettings; + import lombok.RequiredArgsConstructor; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; + +import org.apache.http.Header; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.message.BasicHeader; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.client.RestHighLevelClient; @@ -16,6 +20,7 @@ import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; + import java.io.IOException; import java.util.stream.Collectors; @@ -46,6 +51,11 @@ public class ElasticsearchClient { .setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(ABSURD_HIGH_TIMEOUT) .setSocketTimeout(ABSURD_HIGH_TIMEOUT)); + if (settings.getApiKeyAuth() != null) { + var defaultHeaders = new Header[]{new BasicHeader("Authorization", "ApiKey " + settings.getApiKeyAuth())}; + builder.setDefaultHeaders(defaultHeaders); + } + if (settings.getUsername() != null && !settings.getUsername().isEmpty()) { final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(settings.getUsername(), settings diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/settings/ElasticsearchSettings.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/settings/ElasticsearchSettings.java index b42ef2f..b1c3086 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/settings/ElasticsearchSettings.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/settings/ElasticsearchSettings.java @@ -20,6 +20,7 @@ public class ElasticsearchSettings { private int port = 9300; private String scheme = "http"; + private String apiKeyAuth; private String username; diff --git a/search-service-v1/search-service-server-v1/src/main/resources/application.yml b/search-service-v1/search-service-server-v1/src/main/resources/application.yml index e6924cc..8cb6b82 100644 --- a/search-service-v1/search-service-server-v1/src/main/resources/application.yml +++ b/search-service-v1/search-service-server-v1/src/main/resources/application.yml @@ -39,6 +39,7 @@ elasticsearch: scheme: ${elasticsearch.cluster.scheme:http} username: ${elasticsearch.cluster.username} password: ${elasticsearch.cluster.password} + apiKeyAuth: ${elasticsearch.cluster.apikey} storage: signer-type: 'AWSS3V4SignerType'