Skip to content

Commit 20bdada

Browse files
committed
expose a way to disable host name verification
1 parent eedca08 commit 20bdada

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

unirest/src/main/java/kong/unirest/core/Config.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
public class Config {
4646
public static final int DEFAULT_CONNECT_TIMEOUT = 10000;
4747
public static final String JDK_HTTPCLIENT_KEEPALIVE_TIMEOUT = "jdk.httpclient.keepalive.timeout";
48+
public static final String JDK_HTTPCLIENT_DISABLE_HOST_NAME_VERIFICATION = "jdk.internal.httpclient.disableHostnameVerification";
4849

4950
private Optional<Client> client = Optional.empty();
5051
private Supplier<ObjectMapper> objectMapper;
@@ -898,4 +899,18 @@ public long getTTL() {
898899
public RetryStrategy getRetryStrategy() {
899900
return retry;
900901
}
902+
903+
/**
904+
* Sets the system property jdk.internal.httpclient.disableHostnameVerification
905+
*
906+
* Disables or enables HostNameVerification for the ENTIRE JVM. This will impact all consumers of
907+
* Unirest, java.net.http.HttpClient, or other consumers of either.
908+
*
909+
* @param enabled boolean value for property. true DISABLES host name verification
910+
* @return this config object
911+
*/
912+
public Config disableHostNameVerification(boolean enabled) {
913+
System.setProperty(JDK_HTTPCLIENT_DISABLE_HOST_NAME_VERIFICATION, String.valueOf(enabled));
914+
return this;
915+
}
901916
}

unirest/src/test/java/kong/unirest/core/ConfigTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,15 @@ void requestTimeoutCannotBeNegative() {
142142
assertThrows(IllegalArgumentException.class, () -> config.requestTimeout(-5));
143143
}
144144

145+
@Test
146+
void disableHostNameVerification() {
147+
assertNull(System.getProperty(Config.JDK_HTTPCLIENT_DISABLE_HOST_NAME_VERIFICATION));
148+
config.disableHostNameVerification(true);
149+
assertEquals("true", System.getProperty(Config.JDK_HTTPCLIENT_DISABLE_HOST_NAME_VERIFICATION));
150+
config.disableHostNameVerification(false);
151+
assertEquals("false", System.getProperty(Config.JDK_HTTPCLIENT_DISABLE_HOST_NAME_VERIFICATION));
152+
}
153+
145154
private void assertProxy(String host, Integer port, String username, String password) {
146155
assertEquals(host, config.getProxy().getHost());
147156
assertEquals(port, config.getProxy().getPort());

0 commit comments

Comments
 (0)