diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java index efc4df4e5..26f2a8875 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java @@ -66,6 +66,10 @@ public class RestTemplateEurekaHttpClient implements EurekaHttpClient { return this.serviceUrl; } + public RestTemplate getRestTemplate() { + return restTemplate; + } + @Override public EurekaHttpResponse register(InstanceInfo info) { String urlPath = serviceUrl + "apps/" + info.getAppName(); diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java index fc9f5f84a..1f31e884c 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java @@ -28,7 +28,6 @@ import com.netflix.discovery.EurekaClient; import com.netflix.discovery.EurekaClientConfig; import com.netflix.discovery.shared.transport.jersey.TransportClientFactories; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -501,16 +500,6 @@ class EurekaClientAutoConfigurationTests { assertThat(isShutdown.get()).isTrue(); } - @Test - @Disabled - void basicAuth() { - TestPropertyValues - .of("server.port=8989", "eureka.client.serviceUrl.defaultZone=https://user:foo@example.com:80/eureka") - .applyTo(this.context); - // FIXME: ApacheHttpClient4 http = this.context.getBean(ApacheHttpClient4.class); - // Mockito.verify(http).addFilter(Matchers.any(HTTPBasicAuthFilter.class)); - } - @Test void testDefaultAppName() { setupContext(); diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java index b9a7b5f5b..355803062 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java @@ -16,9 +16,13 @@ package org.springframework.cloud.netflix.eureka.http; +import java.util.List; + import com.netflix.appinfo.providers.EurekaConfigBasedInstanceInfoProvider; import com.netflix.discovery.shared.resolver.DefaultEndpoint; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -26,7 +30,12 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.support.BasicAuthenticationInterceptor; import org.springframework.test.annotation.DirtiesContext; +import org.springframework.web.client.RestTemplate; + +import static org.assertj.core.api.Assertions.assertThat; /** * @author Daniel Lavoie @@ -63,4 +72,14 @@ class RestTemplateEurekaHttpClientTests extends AbstractEurekaHttpClientTests { info = new EurekaConfigBasedInstanceInfoProvider(config).get(); } + @Test + void basicAuth() { + assertThat(eurekaHttpClient).isInstanceOf(RestTemplateEurekaHttpClient.class); + RestTemplateEurekaHttpClient restTemplateEurekaHttpClient = (RestTemplateEurekaHttpClient) eurekaHttpClient; + RestTemplate restTemplate = restTemplateEurekaHttpClient.getRestTemplate(); + List interceptors = restTemplate.getInterceptors(); + boolean hasBasicAuth = interceptors.stream().anyMatch(interceptor -> interceptor instanceof BasicAuthenticationInterceptor); + assertThat(hasBasicAuth).as("Basic Auth not configured").isTrue(); + } + }