Skip to content

Commit

Permalink
Merge pull request quarkusio#18428 from glefloch/fix/trust-all-spring…
Browse files Browse the repository at this point in the history
…-config-client

Propagate quarkus.tls.trust-all in quarkus-spring-cloud-config-client extension
  • Loading branch information
geoand authored Jul 6, 2021
2 parents b900fc3 + b9e12ee commit 91d461f
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -36,9 +37,10 @@ public void registerForReflection(BuildProducer<ReflectiveClassBuildItem> 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));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -17,7 +18,7 @@ public class SpringCloudConfigClientRecorder {
private static final Logger log = Logger.getLogger(SpringCloudConfigClientRecorder.class);

public RuntimeValue<ConfigSourceProvider> 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");
Expand All @@ -31,7 +32,7 @@ public RuntimeValue<ConfigSourceProvider> create(SpringCloudConfigClientConfig s
}

return new RuntimeValue<>(new SpringCloudConfigServerClientConfigSourceProvider(
springCloudConfigClientConfig, applicationConfig.name.get(), ProfileManager.getActiveProfile()));
springCloudConfigClientConfig, applicationConfig.name.get(), ProfileManager.getActiveProfile(), tlsConfig));
}

private RuntimeValue<ConfigSourceProvider> emptyRuntimeValue() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand All @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@
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;
private static final WireMockServer wireMockServer = new WireMockServer(MOCK_SERVER_PORT);

private static final SpringCloudConfigClientConfig springCloudConfigClientConfig = configForTesting();
private final SpringCloudConfigClientGateway sut = new VertxSpringCloudConfigGateway(
springCloudConfigClientConfig);
springCloudConfigClientConfig, new TlsConfig());

@BeforeAll
static void start() {
Expand Down

0 comments on commit 91d461f

Please sign in to comment.