From afaea29441dab70cf401d8c1fa212eedb9599b05 Mon Sep 17 00:00:00 2001 From: Olga MaciaszekSharma Date: Wed, 21 Jun 2023 14:18:00 +0200 Subject: [PATCH 1/5] Upgrade to Eureka `2.0.1-SNAPSHOT` for tests. --- pom.xml | 9 +++++++++ spring-cloud-netflix-dependencies/pom.xml | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 57209494b..0063f964f 100644 --- a/pom.xml +++ b/pom.xml @@ -156,6 +156,15 @@ spring + + + netflix-snapshots + Netflix Snapshots + https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-snapshots + + true + + spring-snapshots Spring Snapshots diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 13cd5156c..fcf527aa9 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -14,7 +14,8 @@ spring-cloud-netflix-dependencies Spring Cloud Netflix Dependencies - 2.0.0 + + 2.0.1-SNAPSHOT From 706d97f3a23d8b8136543647fbe17be6da4d0648 Mon Sep 17 00:00:00 2001 From: Olga MaciaszekSharma Date: Thu, 22 Jun 2023 13:04:57 +0200 Subject: [PATCH 2/5] Revert "Upgrade to Eureka `2.0.1-SNAPSHOT` for tests." This reverts commit afaea29441dab70cf401d8c1fa212eedb9599b05. --- pom.xml | 9 --------- spring-cloud-netflix-dependencies/pom.xml | 3 +-- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 0063f964f..57209494b 100644 --- a/pom.xml +++ b/pom.xml @@ -156,15 +156,6 @@ spring - - - netflix-snapshots - Netflix Snapshots - https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-snapshots - - true - - spring-snapshots Spring Snapshots diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index fcf527aa9..13cd5156c 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -14,8 +14,7 @@ spring-cloud-netflix-dependencies Spring Cloud Netflix Dependencies - - 2.0.1-SNAPSHOT + 2.0.0 From 17692c12536a95fe00cbbf4b0d4bb9b1ef51ba33 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Thu, 22 Jun 2023 09:36:37 -0400 Subject: [PATCH 3/5] Fixes test to use new ContextRefreshedWithApplicationEvent --- .../eureka/EurekaClientAutoConfigurationTests.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 f068bc0c7..fc9f5f84a 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 @@ -39,7 +39,6 @@ import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.SearchStrategy; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.context.event.ApplicationPreparedEvent; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.source.ConfigurationPropertySources; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -49,6 +48,7 @@ import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.health.DiscoveryClientHealthIndicator; import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties; import org.springframework.cloud.commons.util.UtilAutoConfiguration; +import org.springframework.cloud.context.config.ContextRefreshedWithApplicationEvent; import org.springframework.cloud.context.refresh.ContextRefresher; import org.springframework.cloud.context.scope.GenericScope; import org.springframework.cloud.netflix.eureka.config.DiscoveryClientOptionalArgsConfiguration; @@ -471,9 +471,9 @@ class EurekaClientAutoConfigurationTests { ContextRefresher refresher = this.context.getBean(ContextRefresher.class); if (refresher instanceof ApplicationListener) { - ApplicationListener listener = (ApplicationListener) refresher; - listener.onApplicationEvent( - new ApplicationPreparedEvent(Mockito.mock(SpringApplication.class), new String[0], this.context)); + ApplicationListener listener = (ApplicationListener) refresher; + listener.onApplicationEvent(new ContextRefreshedWithApplicationEvent(Mockito.mock(SpringApplication.class), + new String[0], this.context)); } refresher.refresh(); From 8314bb47a0d628256e89f9239dc804ece9cd08a2 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Thu, 22 Jun 2023 10:30:41 -0400 Subject: [PATCH 4/5] Moves basic auth tests to RestTemplateEurekaHttpClientTests --- .../http/RestTemplateEurekaHttpClient.java | 4 ++++ .../EurekaClientAutoConfigurationTests.java | 11 ----------- .../RestTemplateEurekaHttpClientTests.java | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 11 deletions(-) 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(); + } + } From 98dafc9e3628087f0175059e097ff82a0d29e018 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Thu, 22 Jun 2023 10:30:59 -0400 Subject: [PATCH 5/5] Updates eureka to 2.0.1 --- spring-cloud-netflix-dependencies/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 13cd5156c..8ed25ef30 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -14,7 +14,7 @@ spring-cloud-netflix-dependencies Spring Cloud Netflix Dependencies - 2.0.0 + 2.0.1