diff --git a/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java b/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java index 83215cf29..a17c84f78 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java @@ -112,7 +112,9 @@ class ClientConfigurationBuilder Assert.notNull(defaultHeaders, "Default HTTP headers must not be null"); - this.headers = defaultHeaders; + this.headers = new HttpHeaders(); + this.headers.addAll(defaultHeaders); + return this; } @@ -167,6 +169,7 @@ class ClientConfigurationBuilder } headers.setBasicAuth(username, password); } + return new DefaultClientConfiguration(this.hosts, this.headers, this.useSsl, this.sslContext, this.soTimeout, this.connectTimeout); } diff --git a/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java index f4fa66328..ae278eeff 100644 --- a/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java @@ -34,8 +34,6 @@ import org.springframework.http.HttpHeaders; */ public class ClientConfigurationUnitTests { - private static final String AUTHORIZATION_HEADER = "Authorization"; - @Test // DATAES-488 public void shouldCreateSimpleConfiguration() { @@ -85,23 +83,23 @@ public class ClientConfigurationUnitTests { @Test // DATAES-607 public void shouldAddBasicAuthenticationHeaderWhenNoHeadersAreSet() { - final String username = "secretUser"; - final String password = "secretPassword"; + String username = "secretUser"; + String password = "secretPassword"; ClientConfiguration clientConfiguration = ClientConfiguration.builder() // .connectedTo("foo", "bar") // .withBasicAuth(username, password) // .build(); - assertThat(clientConfiguration.getDefaultHeaders().get(AUTHORIZATION_HEADER)) + assertThat(clientConfiguration.getDefaultHeaders().get(HttpHeaders.AUTHORIZATION)) .containsOnly(buildBasicAuth(username, password)); } @Test // DATAES-607 public void shouldAddBasicAuthenticationHeaderAndKeepHeaders() { - final String username = "secretUser"; - final String password = "secretPassword"; + String username = "secretUser"; + String password = "secretPassword"; HttpHeaders defaultHeaders = new HttpHeaders(); defaultHeaders.set("foo", "bar"); @@ -109,17 +107,20 @@ public class ClientConfigurationUnitTests { ClientConfiguration clientConfiguration = ClientConfiguration.builder() // .connectedTo("foo", "bar") // .withBasicAuth(username, password) // - .withDefaultHeaders(defaultHeaders).build(); - final HttpHeaders httpHeaders = clientConfiguration.getDefaultHeaders(); + .withDefaultHeaders(defaultHeaders) // + .build(); - assertThat(httpHeaders.get(AUTHORIZATION_HEADER)).containsOnly(buildBasicAuth(username, password)); - assertThat(httpHeaders.get("foo")).containsOnly("bar"); + HttpHeaders httpHeaders = clientConfiguration.getDefaultHeaders(); + + assertThat(httpHeaders.get(HttpHeaders.AUTHORIZATION)).containsOnly(buildBasicAuth(username, password)); + assertThat(httpHeaders.getFirst("foo")).isEqualTo("bar"); + assertThat(defaultHeaders.get(HttpHeaders.AUTHORIZATION)).isNull(); } - private String buildBasicAuth(String username, String password) { + private static String buildBasicAuth(String username, String password) { HttpHeaders headers = new HttpHeaders(); headers.setBasicAuth(username, password); - return headers.get(AUTHORIZATION_HEADER).get(0); + return headers.getFirst(HttpHeaders.AUTHORIZATION); } }