diff --git a/extensions/spring-cloud-config-client/deployment/src/main/java/io/quarkus/spring/cloud/config/client/SpringCloudConfigProcessor.java b/extensions/spring-cloud-config-client/deployment/src/main/java/io/quarkus/spring/cloud/config/client/SpringCloudConfigProcessor.java index 2e34cbdcc894a..5fa4dc98e27af 100644 --- a/extensions/spring-cloud-config-client/deployment/src/main/java/io/quarkus/spring/cloud/config/client/SpringCloudConfigProcessor.java +++ b/extensions/spring-cloud-config-client/deployment/src/main/java/io/quarkus/spring/cloud/config/client/SpringCloudConfigProcessor.java @@ -10,6 +10,7 @@ import io.quarkus.deployment.builditem.RunTimeConfigurationSourceValueBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.runtime.ApplicationConfig; +import io.quarkus.runtime.TlsConfig; import io.quarkus.spring.cloud.config.client.runtime.Response; import io.quarkus.spring.cloud.config.client.runtime.SpringCloudConfigClientConfig; import io.quarkus.spring.cloud.config.client.runtime.SpringCloudConfigClientRecorder; @@ -36,9 +37,10 @@ public void registerForReflection(BuildProducer reflec @Record(ExecutionTime.RUNTIME_INIT) public RunTimeConfigurationSourceValueBuildItem configure(SpringCloudConfigClientRecorder recorder, SpringCloudConfigClientConfig springCloudConfigClientConfig, - ApplicationConfig applicationConfig) { + ApplicationConfig applicationConfig, + TlsConfig tlsConfig) { return new RunTimeConfigurationSourceValueBuildItem( - recorder.create(springCloudConfigClientConfig, applicationConfig)); + recorder.create(springCloudConfigClientConfig, applicationConfig, tlsConfig)); } } diff --git a/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientRecorder.java b/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientRecorder.java index 555b6a0035663..7cc4cebd1b46a 100644 --- a/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientRecorder.java +++ b/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientRecorder.java @@ -8,6 +8,7 @@ import io.quarkus.runtime.ApplicationConfig; import io.quarkus.runtime.RuntimeValue; +import io.quarkus.runtime.TlsConfig; import io.quarkus.runtime.annotations.Recorder; import io.quarkus.runtime.configuration.ProfileManager; @@ -17,7 +18,7 @@ public class SpringCloudConfigClientRecorder { private static final Logger log = Logger.getLogger(SpringCloudConfigClientRecorder.class); public RuntimeValue create(SpringCloudConfigClientConfig springCloudConfigClientConfig, - ApplicationConfig applicationConfig) { + ApplicationConfig applicationConfig, TlsConfig tlsConfig) { if (!springCloudConfigClientConfig.enabled) { log.debug( "No attempt will be made to obtain configuration from the Spring Cloud Config Server because the functionality has been disabled via configuration"); @@ -31,7 +32,7 @@ public RuntimeValue create(SpringCloudConfigClientConfig s } return new RuntimeValue<>(new SpringCloudConfigServerClientConfigSourceProvider( - springCloudConfigClientConfig, applicationConfig.name.get(), ProfileManager.getActiveProfile())); + springCloudConfigClientConfig, applicationConfig.name.get(), ProfileManager.getActiveProfile(), tlsConfig)); } private RuntimeValue emptyRuntimeValue() { diff --git a/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigServerClientConfigSourceProvider.java b/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigServerClientConfigSourceProvider.java index 6efbf8e14d75b..6381d50b9d48c 100644 --- a/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigServerClientConfigSourceProvider.java +++ b/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigServerClientConfigSourceProvider.java @@ -11,6 +11,8 @@ import org.eclipse.microprofile.config.spi.ConfigSourceProvider; import org.jboss.logging.Logger; +import io.quarkus.runtime.TlsConfig; + public class SpringCloudConfigServerClientConfigSourceProvider implements ConfigSourceProvider { private static final Logger log = Logger.getLogger(SpringCloudConfigServerClientConfigSourceProvider.class); @@ -23,12 +25,12 @@ public class SpringCloudConfigServerClientConfigSourceProvider implements Config public SpringCloudConfigServerClientConfigSourceProvider(SpringCloudConfigClientConfig springCloudConfigClientConfig, String applicationName, - String activeProfile) { + String activeProfile, TlsConfig tlsConfig) { this.springCloudConfigClientConfig = springCloudConfigClientConfig; this.applicationName = applicationName; this.activeProfile = activeProfile; - springCloudConfigClientGateway = new VertxSpringCloudConfigGateway(springCloudConfigClientConfig); + springCloudConfigClientGateway = new VertxSpringCloudConfigGateway(springCloudConfigClientConfig, tlsConfig); } @Override diff --git a/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/VertxSpringCloudConfigGateway.java b/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/VertxSpringCloudConfigGateway.java index e4524f1956ba9..39c01eb02c600 100644 --- a/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/VertxSpringCloudConfigGateway.java +++ b/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/VertxSpringCloudConfigGateway.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import io.quarkus.runtime.TlsConfig; import io.smallrye.mutiny.Uni; import io.vertx.core.net.JksOptions; import io.vertx.core.net.KeyStoreOptionsBase; @@ -43,7 +44,7 @@ public class VertxSpringCloudConfigGateway implements SpringCloudConfigClientGat private final WebClient webClient; private final URI baseURI; - public VertxSpringCloudConfigGateway(SpringCloudConfigClientConfig springCloudConfigClientConfig) { + public VertxSpringCloudConfigGateway(SpringCloudConfigClientConfig springCloudConfigClientConfig, TlsConfig tlsConfig) { this.springCloudConfigClientConfig = springCloudConfigClientConfig; try { this.baseURI = determineBaseUri(springCloudConfigClientConfig); @@ -52,16 +53,17 @@ public VertxSpringCloudConfigGateway(SpringCloudConfigClientConfig springCloudCo + "' of property 'quarkus.spring-cloud-config.url' is invalid", e); } this.vertx = Vertx.vertx(); - this.webClient = createHttpClient(vertx, springCloudConfigClientConfig); + this.webClient = createHttpClient(vertx, springCloudConfigClientConfig, tlsConfig); } - public static WebClient createHttpClient(Vertx vertx, SpringCloudConfigClientConfig springCloudConfig) { + public static WebClient createHttpClient(Vertx vertx, SpringCloudConfigClientConfig springCloudConfig, + TlsConfig tlsConfig) { WebClientOptions webClientOptions = new WebClientOptions() .setConnectTimeout((int) springCloudConfig.connectionTimeout.toMillis()) .setIdleTimeout((int) springCloudConfig.readTimeout.getSeconds()); - boolean trustAll = springCloudConfig.trustCerts; + boolean trustAll = springCloudConfig.trustCerts || tlsConfig.trustAll; try { if (springCloudConfig.trustStore.isPresent()) { Path trustStorePath = springCloudConfig.trustStore.get(); diff --git a/extensions/spring-cloud-config-client/runtime/src/test/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientGatewayTest.java b/extensions/spring-cloud-config-client/runtime/src/test/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientGatewayTest.java index b7efba10ebca1..b00e198cd7614 100644 --- a/extensions/spring-cloud-config-client/runtime/src/test/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientGatewayTest.java +++ b/extensions/spring-cloud-config-client/runtime/src/test/java/io/quarkus/spring/cloud/config/client/runtime/SpringCloudConfigClientGatewayTest.java @@ -17,6 +17,8 @@ import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; +import io.quarkus.runtime.TlsConfig; + class SpringCloudConfigClientGatewayTest { private static final int MOCK_SERVER_PORT = 9300; @@ -24,7 +26,7 @@ class SpringCloudConfigClientGatewayTest { private static final SpringCloudConfigClientConfig springCloudConfigClientConfig = configForTesting(); private final SpringCloudConfigClientGateway sut = new VertxSpringCloudConfigGateway( - springCloudConfigClientConfig); + springCloudConfigClientConfig, new TlsConfig()); @BeforeAll static void start() {