diff --git a/pom.xml b/pom.xml index fd8bb1baddba..3101d4be6e79 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ 0.38 0.6 1.12.560 - 3.9.0 + 4.12.0 3.4.0 19.3.0.0 1.38 @@ -2357,6 +2357,7 @@ com.fasterxml.jackson.core:jackson-annotations com.fasterxml.jackson.core:jackson-core com.fasterxml.jackson.core:jackson-databind + org.jetbrains.kotlin:kotlin-stdlib-jdk8 @@ -2395,7 +2396,15 @@ protobuf-maven-plugin 0.5.1 - + + org.basepom.maven + duplicate-finder-maven-plugin + + + META-INF.versions.9.module-info + + + diff --git a/presto-client/src/main/java/com/facebook/presto/client/OkHttpUtil.java b/presto-client/src/main/java/com/facebook/presto/client/OkHttpUtil.java index 78175f158dbb..c08f3e089bab 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/OkHttpUtil.java +++ b/presto-client/src/main/java/com/facebook/presto/client/OkHttpUtil.java @@ -58,6 +58,7 @@ import static java.net.Proxy.Type.SOCKS; import static java.util.Collections.list; import static java.util.Objects.requireNonNull; +import static okhttp3.internal.tls.OkHostnameVerifier.INSTANCE; public final class OkHttpUtil { @@ -178,7 +179,7 @@ public static void setupSsl( OkHttpClient.Builder clientBuilder, Optional keyStorePath, Optional keyStorePassword, - Optional keystoreType, + Optional keyStoreType, Optional trustStorePath, Optional trustStorePassword, Optional trustStoreType) @@ -192,7 +193,6 @@ public static void setupSsl( KeyStore keyStore = null; KeyManager[] keyManagers = null; if (keyStorePath.isPresent()) { - checkArgument(keystoreType.isPresent(), "keystore type is not present"); char[] keyManagerPassword; try { // attempt to read the key store as a PEM file @@ -203,7 +203,7 @@ public static void setupSsl( catch (IOException | GeneralSecurityException ignored) { keyManagerPassword = keyStorePassword.map(String::toCharArray).orElse(null); - keyStore = KeyStore.getInstance(keystoreType.get()); + keyStore = KeyStore.getInstance(keyStoreType.get()); try (InputStream in = new FileInputStream(keyStorePath.get())) { keyStore.load(in, keyManagerPassword); } @@ -217,7 +217,6 @@ public static void setupSsl( // load TrustStore if configured, otherwise use KeyStore KeyStore trustStore = keyStore; if (trustStorePath.isPresent()) { - checkArgument(trustStoreType.isPresent(), "truststore type is not present"); trustStore = loadTrustStore(new File(trustStorePath.get()), trustStorePassword, trustStoreType.get()); } @@ -237,12 +236,23 @@ public static void setupSsl( sslContext.init(keyManagers, new TrustManager[] {trustManager}, null); clientBuilder.sslSocketFactory(sslContext.getSocketFactory(), trustManager); + clientBuilder.hostnameVerifier(INSTANCE); } catch (GeneralSecurityException | IOException e) { throw new ClientException("Error setting up SSL: " + e.getMessage(), e); } } + public static void setupSsl( + OkHttpClient.Builder clientBuilder, + Optional keyStorePath, + Optional keyStorePassword, + Optional trustStorePath, + Optional trustStorePassword) + { + setupSsl(clientBuilder, keyStorePath, keyStorePassword, Optional.of(KeyStore.getDefaultType()), trustStorePath, trustStorePassword, Optional.of(KeyStore.getDefaultType())); + } + private static void validateCertificates(KeyStore keyStore) throws GeneralSecurityException {