Skip to content

Commit b125d20

Browse files
committed
Switch HostnameVerificationPolicy to BUILTIN by default
1 parent c5bd9af commit b125d20

5 files changed

Lines changed: 32 additions & 32 deletions

File tree

httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestTlsHandshakeTimeout.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,20 @@
2626
*/
2727
package org.apache.hc.client5.testing.sync;
2828

29+
import static java.lang.String.format;
30+
import static java.util.concurrent.TimeUnit.MILLISECONDS;
31+
import static java.util.concurrent.TimeUnit.SECONDS;
32+
import static org.apache.hc.core5.util.ReflectionUtils.determineJRELevel;
33+
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
34+
import static org.junit.jupiter.api.Assertions.assertThrows;
35+
import static org.junit.jupiter.api.Assertions.assertTrue;
36+
import static org.junit.jupiter.api.Assumptions.assumeFalse;
37+
38+
import java.time.Duration;
39+
import java.time.temporal.ChronoUnit;
40+
41+
import javax.net.ssl.SSLException;
42+
2943
import org.apache.hc.client5.http.ConnectTimeoutException;
3044
import org.apache.hc.client5.http.classic.HttpClient;
3145
import org.apache.hc.client5.http.classic.methods.HttpGet;
@@ -37,26 +51,15 @@
3751
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
3852
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
3953
import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
54+
import org.apache.hc.client5.http.ssl.HostnameVerificationPolicy;
55+
import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
4056
import org.apache.hc.client5.testing.SSLTestContexts;
4157
import org.apache.hc.client5.testing.tls.TlsHandshakeTimeoutServer;
4258
import org.apache.hc.core5.http.ClassicHttpRequest;
4359
import org.junit.jupiter.api.Timeout;
4460
import org.junit.jupiter.params.ParameterizedTest;
4561
import org.junit.jupiter.params.provider.ValueSource;
4662

47-
import javax.net.ssl.SSLException;
48-
import java.time.Duration;
49-
import java.time.temporal.ChronoUnit;
50-
51-
import static java.lang.String.format;
52-
import static java.util.concurrent.TimeUnit.MILLISECONDS;
53-
import static java.util.concurrent.TimeUnit.SECONDS;
54-
import static org.apache.hc.core5.util.ReflectionUtils.determineJRELevel;
55-
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
56-
import static org.junit.jupiter.api.Assertions.assertThrows;
57-
import static org.junit.jupiter.api.Assertions.assertTrue;
58-
import static org.junit.jupiter.api.Assumptions.assumeFalse;
59-
6063
public class TestTlsHandshakeTimeout {
6164
private static final Duration EXPECTED_TIMEOUT = Duration.ofMillis(500);
6265

@@ -69,7 +72,7 @@ void testTimeout(final boolean sendServerHello) throws Exception {
6972
.setConnectTimeout(5, SECONDS)
7073
.setSocketTimeout(5, SECONDS)
7174
.build())
72-
.setTlsSocketStrategy(new DefaultClientTlsStrategy(SSLTestContexts.createClientSSLContext()))
75+
.setTlsSocketStrategy(new DefaultClientTlsStrategy(SSLTestContexts.createClientSSLContext(), HostnameVerificationPolicy.CLIENT, NoopHostnameVerifier.INSTANCE))
7376
.setDefaultTlsConfig(TlsConfig.custom()
7477
.setHandshakeTimeout(EXPECTED_TIMEOUT.toMillis(), MILLISECONDS)
7578
.build())

httpclient5/src/main/java/org/apache/hc/client5/http/ssl/AbstractClientTlsStrategy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ abstract class AbstractClientTlsStrategy implements TlsStrategy, TlsSocketStrate
9797
this.supportedProtocols = supportedProtocols;
9898
this.supportedCipherSuites = supportedCipherSuites;
9999
this.sslBufferManagement = sslBufferManagement != null ? sslBufferManagement : SSLBufferMode.STATIC;
100-
this.hostnameVerificationPolicy = hostnameVerificationPolicy != null ? hostnameVerificationPolicy : HostnameVerificationPolicy.BOTH;
101-
this.hostnameVerifier = hostnameVerifier != null ? hostnameVerifier :
102-
(this.hostnameVerificationPolicy == HostnameVerificationPolicy.BUILTIN ? NoopHostnameVerifier.INSTANCE : HttpsSupport.getDefaultHostnameVerifier());
100+
this.hostnameVerificationPolicy = hostnameVerificationPolicy != null ? hostnameVerificationPolicy :
101+
(hostnameVerifier != null ? HostnameVerificationPolicy.BOTH : HostnameVerificationPolicy.BUILTIN);
102+
this.hostnameVerifier = hostnameVerifier;
103103
}
104104

105105
/**

httpclient5/src/main/java/org/apache/hc/client5/http/ssl/ClientTlsStrategyBuilder.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,16 +226,13 @@ private DefaultClientTlsStrategy buildImpl() {
226226
}
227227
final HostnameVerificationPolicy hostnameVerificationPolicyCopy = hostnameVerificationPolicy != null ? hostnameVerificationPolicy :
228228
(hostnameVerifier == null ? HostnameVerificationPolicy.BUILTIN : HostnameVerificationPolicy.BOTH);
229-
final HostnameVerifier hostnameVerifierCopy = hostnameVerifier != null ? hostnameVerifier :
230-
(hostnameVerificationPolicyCopy == HostnameVerificationPolicy.CLIENT || hostnameVerificationPolicyCopy == HostnameVerificationPolicy.BOTH ?
231-
HttpsSupport.getDefaultHostnameVerifier() : NoopHostnameVerifier.INSTANCE);
232229
return new DefaultClientTlsStrategy(
233230
sslContextCopy,
234231
tlsVersionsCopy,
235232
ciphersCopy,
236233
sslBufferMode != null ? sslBufferMode : SSLBufferMode.STATIC,
237234
hostnameVerificationPolicyCopy,
238-
hostnameVerifierCopy);
235+
hostnameVerifier);
239236
}
240237

241238
}

httpclient5/src/main/java/org/apache/hc/client5/http/ssl/ConscryptClientTlsStrategy.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public class ConscryptClientTlsStrategy extends AbstractClientTlsStrategy {
5454
public static TlsStrategy getDefault() {
5555
return new ConscryptClientTlsStrategy(
5656
SSLContexts.createDefault(),
57-
HostnameVerificationPolicy.BOTH,
58-
HttpsSupport.getDefaultHostnameVerifier());
57+
HostnameVerificationPolicy.BUILTIN,
58+
null);
5959
}
6060

6161
public static TlsStrategy getSystemDefault() {
@@ -64,8 +64,8 @@ public static TlsStrategy getSystemDefault() {
6464
HttpsSupport.getSystemProtocols(),
6565
HttpsSupport.getSystemCipherSuits(),
6666
SSLBufferMode.STATIC,
67-
HostnameVerificationPolicy.BOTH,
68-
HttpsSupport.getDefaultHostnameVerifier());
67+
HostnameVerificationPolicy.BUILTIN,
68+
null);
6969
}
7070

7171
public ConscryptClientTlsStrategy(
@@ -107,7 +107,7 @@ public ConscryptClientTlsStrategy(
107107
}
108108

109109
public ConscryptClientTlsStrategy(final SSLContext sslContext) {
110-
this(sslContext, HttpsSupport.getDefaultHostnameVerifier());
110+
this(sslContext, null);
111111
}
112112

113113
@Override

httpclient5/src/main/java/org/apache/hc/client5/http/ssl/DefaultClientTlsStrategy.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public class DefaultClientTlsStrategy extends AbstractClientTlsStrategy {
5454
public static DefaultClientTlsStrategy createDefault() {
5555
return new DefaultClientTlsStrategy(
5656
SSLContexts.createDefault(),
57-
HostnameVerificationPolicy.BOTH,
58-
HttpsSupport.getDefaultHostnameVerifier());
57+
HostnameVerificationPolicy.BUILTIN,
58+
null);
5959
}
6060

6161
/**
@@ -67,8 +67,8 @@ public static DefaultClientTlsStrategy createSystemDefault() {
6767
HttpsSupport.getSystemProtocols(),
6868
HttpsSupport.getSystemCipherSuits(),
6969
SSLBufferMode.STATIC,
70-
HostnameVerificationPolicy.BOTH,
71-
HttpsSupport.getDefaultHostnameVerifier());
70+
HostnameVerificationPolicy.BUILTIN,
71+
null);
7272
}
7373

7474
/**
@@ -127,7 +127,7 @@ public DefaultClientTlsStrategy(
127127
final String[] supportedCipherSuites,
128128
final SSLBufferMode sslBufferManagement,
129129
final HostnameVerifier hostnameVerifier) {
130-
this(sslContext, supportedProtocols, supportedCipherSuites, sslBufferManagement, HostnameVerificationPolicy.CLIENT, hostnameVerifier);
130+
this(sslContext, supportedProtocols, supportedCipherSuites, sslBufferManagement, null, hostnameVerifier);
131131
}
132132

133133
public DefaultClientTlsStrategy(
@@ -147,7 +147,7 @@ public DefaultClientTlsStrategy(
147147
}
148148

149149
public DefaultClientTlsStrategy(final SSLContext sslContext) {
150-
this(sslContext, HttpsSupport.getDefaultHostnameVerifier());
150+
this(sslContext, null);
151151
}
152152

153153
@Override

0 commit comments

Comments
 (0)