diff --git a/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/datastore/ElasticsearchDatastoreConfig.java b/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/datastore/ElasticsearchDatastoreConfig.java index 6544e163f..eaed6afce 100644 --- a/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/datastore/ElasticsearchDatastoreConfig.java +++ b/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/datastore/ElasticsearchDatastoreConfig.java @@ -1,5 +1,7 @@ package io.hyperfoil.tools.horreum.api.data.datastore; +import static java.util.Objects.requireNonNullElse; + import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; @@ -42,11 +44,16 @@ public String getMaskedSecrets() { @Override public String validateConfig() { - if ("".equals(apiKey) && ("".equals(username) || "".equals(password))) { + + String _apiKey = requireNonNullElse(apiKey, ""); + String _username = requireNonNullElse(username, ""); + String _password = requireNonNullElse(password, ""); + + if ("".equals(_apiKey) && ("".equals(_username) || "".equals(_password))) { return "Either apiKey or username and password must be set"; } - if (!"".equals(apiKey) && !("".equals(username) || "".equals(password))) { + if (!"".equals(_apiKey) && !("".equals(_username) || "".equals(_password))) { return "Only apiKey or username and password can be set"; } diff --git a/horreum-backend/src/test/java/io/hyperfoil/tools/horreum/svc/DatasourceTest.java b/horreum-backend/src/test/java/io/hyperfoil/tools/horreum/svc/DatasourceTest.java index e8c051660..16cb3736e 100644 --- a/horreum-backend/src/test/java/io/hyperfoil/tools/horreum/svc/DatasourceTest.java +++ b/horreum-backend/src/test/java/io/hyperfoil/tools/horreum/svc/DatasourceTest.java @@ -219,7 +219,7 @@ private TestConfig createNewTestAndDatastores(TestInfo info) { ElasticsearchDatastoreConfig elasticConfig = new ElasticsearchDatastoreConfig(); elasticConfig.url = hosts.get().get(0); - elasticConfig.apiKey = apiKey.orElse(""); + elasticConfig.apiKey = apiKey.orElse("123"); newDatastore.config = mapper.valueToTree(elasticConfig);