Skip to content

Commit e10c98e

Browse files
authored
HTTP/3: Fix tests to skip TLS name validation (#34688)
1 parent b3e8e4a commit e10c98e

File tree

2 files changed

+37
-31
lines changed

2 files changed

+37
-31
lines changed

src/Servers/Kestrel/Transport.Quic/test/WebHostTests.cs

+26-28
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public async Task UseUrls_HelloWorld_ClientSuccess()
5454
.ConfigureServices(AddTestLogging);
5555

5656
using (var host = builder.Build())
57-
using (var client = new HttpClient())
57+
using (var client = CreateClient())
5858
{
5959
await host.StartAsync();
6060

@@ -183,10 +183,7 @@ public async Task Listen_Http3AndSocketsCoexistOnSameEndpoint_AltSvcEnabled_Upgr
183183
using var host = builder.Build();
184184
await host.StartAsync().DefaultTimeout();
185185

186-
var httpClientHandler = new HttpClientHandler();
187-
httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
188-
189-
using (var client = new HttpClient(httpClientHandler))
186+
using (var client = CreateClient())
190187
{
191188
// Act
192189
var request1 = new HttpRequestMessage(HttpMethod.Get, $"https://127.0.0.1:{host.GetPort()}/");
@@ -221,43 +218,44 @@ public async Task Listen_Http3AndSocketsCoexistOnSameEndpoint_AltSvcEnabled_Upgr
221218

222219
private static async Task CallHttp3AndHttp1EndpointsAsync(int http3Port, int http1Port)
223220
{
224-
// HTTP/3
225-
using (var client = new HttpClient())
221+
using (var client = CreateClient())
226222
{
227-
var request = new HttpRequestMessage(HttpMethod.Get, $"https://127.0.0.1:{http3Port}/");
228-
request.Version = HttpVersion.Version30;
229-
request.VersionPolicy = HttpVersionPolicy.RequestVersionExact;
223+
// HTTP/3
224+
var request1 = new HttpRequestMessage(HttpMethod.Get, $"https://127.0.0.1:{http3Port}/");
225+
request1.Version = HttpVersion.Version30;
226+
request1.VersionPolicy = HttpVersionPolicy.RequestVersionExact;
230227

231228
// Act
232-
var response = await client.SendAsync(request).DefaultTimeout();
229+
var response1 = await client.SendAsync(request1).DefaultTimeout();
233230

234231
// Assert
235-
response.EnsureSuccessStatusCode();
236-
Assert.Equal(HttpVersion.Version30, response.Version);
237-
var responseText = await response.Content.ReadAsStringAsync().DefaultTimeout();
238-
Assert.Equal("hello, world", responseText);
239-
}
240-
241-
// HTTP/1.1
242-
var httpClientHandler = new HttpClientHandler();
243-
httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
232+
response1.EnsureSuccessStatusCode();
233+
Assert.Equal(HttpVersion.Version30, response1.Version);
234+
var responseText1 = await response1.Content.ReadAsStringAsync().DefaultTimeout();
235+
Assert.Equal("hello, world", responseText1);
244236

245-
using (var client = new HttpClient(httpClientHandler))
246-
{
247237
// HTTP/1.1
248-
var request = new HttpRequestMessage(HttpMethod.Get, $"https://127.0.0.1:{http1Port}/");
238+
var request2 = new HttpRequestMessage(HttpMethod.Get, $"https://127.0.0.1:{http1Port}/");
249239

250240
// Act
251-
var response = await client.SendAsync(request).DefaultTimeout();
241+
var response2 = await client.SendAsync(request2).DefaultTimeout();
252242

253243
// Assert
254-
response.EnsureSuccessStatusCode();
255-
Assert.Equal(HttpVersion.Version11, response.Version);
256-
var responseText = await response.Content.ReadAsStringAsync().DefaultTimeout();
257-
Assert.Equal("hello, world", responseText);
244+
response2.EnsureSuccessStatusCode();
245+
Assert.Equal(HttpVersion.Version11, response2.Version);
246+
var responseText2 = await response2.Content.ReadAsStringAsync().DefaultTimeout();
247+
Assert.Equal("hello, world", responseText2);
258248
}
259249
}
260250

251+
private static HttpClient CreateClient()
252+
{
253+
var httpHandler = new HttpClientHandler();
254+
httpHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
255+
256+
return new HttpClient(httpHandler);
257+
}
258+
261259
public static IHostBuilder GetHostBuilder(long? maxReadBufferSize = null)
262260
{
263261
return new HostBuilder()

src/Servers/Kestrel/test/Interop.FunctionalTests/Http3/Http3RequestTests.cs

+11-3
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public async Task POST_ServerCompletsWithoutReadingRequestBody_ClientGetsRespons
7575
});
7676

7777
using (var host = builder.Build())
78-
using (var client = new HttpClient())
78+
using (var client = CreateClient())
7979
{
8080
await host.StartAsync();
8181

@@ -130,7 +130,7 @@ public async Task GET_MultipleRequestsInSequence_ReusedState()
130130
});
131131

132132
using (var host = builder.Build())
133-
using (var client = new HttpClient())
133+
using (var client = CreateClient())
134134
{
135135
await host.StartAsync();
136136

@@ -186,7 +186,7 @@ public async Task GET_ConnectionLoggingConfigured_OutputToLogs()
186186
});
187187

188188
using (var host = builder.Build())
189-
using (var client = new HttpClient())
189+
using (var client = CreateClient())
190190
{
191191
await host.StartAsync();
192192

@@ -215,6 +215,14 @@ public async Task GET_ConnectionLoggingConfigured_OutputToLogs()
215215
}
216216
}
217217

218+
private static HttpClient CreateClient()
219+
{
220+
var httpHandler = new HttpClientHandler();
221+
httpHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
222+
223+
return new HttpClient(httpHandler);
224+
}
225+
218226
private IHostBuilder CreateHttp3HostBuilder(RequestDelegate requestDelegate, Action<KestrelServerOptions> configureKestrel = null)
219227
{
220228
return GetHostBuilder()

0 commit comments

Comments
 (0)