diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/Http/Frame.cs b/src/Microsoft.AspNetCore.Server.Kestrel/Http/Frame.cs index dbf7463dfe..9db412405a 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/Http/Frame.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/Http/Frame.cs @@ -919,7 +919,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http // URI was encoded, unescape and then parse as utf8 pathEnd = UrlPathDecoder.Unescape(pathBegin, pathEnd); requestUrlPath = pathBegin.GetUtf8String(pathEnd); - requestUrlPath = PathNormalizer.NormalizeToNFC(requestUrlPath); } else { diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/Http/PathNormalizer.cs b/src/Microsoft.AspNetCore.Server.Kestrel/Http/PathNormalizer.cs index e136331e22..65b59e4a0e 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/Http/PathNormalizer.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/Http/PathNormalizer.cs @@ -9,16 +9,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http { public static class PathNormalizer { - public static string NormalizeToNFC(string path) - { - if (!path.IsNormalized(NormalizationForm.FormC)) - { - path = path.Normalize(NormalizationForm.FormC); - } - - return path; - } - public static string RemoveDotSegments(string path) { if (ContainsDotSegments(path)) diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/ServerAddress.cs b/src/Microsoft.AspNetCore.Server.Kestrel/ServerAddress.cs index 4dd7ffb0cf..17258184dd 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/ServerAddress.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/ServerAddress.cs @@ -156,8 +156,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel serverAddress.PathBase = url.Substring(pathDelimiterEnd); } - serverAddress.PathBase = PathNormalizer.NormalizeToNFC(serverAddress.PathBase); - return serverAddress; } diff --git a/test/Microsoft.AspNetCore.Server.KestrelTests/PathNormalizerTests.cs b/test/Microsoft.AspNetCore.Server.KestrelTests/PathNormalizerTests.cs index a2304301e8..d19eb63705 100644 --- a/test/Microsoft.AspNetCore.Server.KestrelTests/PathNormalizerTests.cs +++ b/test/Microsoft.AspNetCore.Server.KestrelTests/PathNormalizerTests.cs @@ -51,13 +51,5 @@ namespace Microsoft.AspNetCore.Server.KestrelTests var result = PathNormalizer.RemoveDotSegments(input); Assert.Equal(expected, result); } - - [Fact] - public void NormalizesToNFC() - { - var result = PathNormalizer.NormalizeToNFC("/\u0041\u030A"); - Assert.True(result.IsNormalized(NormalizationForm.FormC)); - Assert.Equal("/\u00C5", result); - } } } diff --git a/test/Microsoft.AspNetCore.Server.KestrelTests/RequestTargetProcessingTests.cs b/test/Microsoft.AspNetCore.Server.KestrelTests/RequestTargetProcessingTests.cs index 8910e8f768..a3c37ff19a 100644 --- a/test/Microsoft.AspNetCore.Server.KestrelTests/RequestTargetProcessingTests.cs +++ b/test/Microsoft.AspNetCore.Server.KestrelTests/RequestTargetProcessingTests.cs @@ -17,17 +17,17 @@ namespace Microsoft.AspNetCore.Server.KestrelTests using (var server = new TestServer(async context => { - Assert.Equal("/\u00C5", context.Request.PathBase.Value); - Assert.Equal("/B/\u00C5", context.Request.Path.Value); + Assert.Equal("/A", context.Request.PathBase.Value); + Assert.Equal("/B/C", context.Request.Path.Value); context.Response.Headers["Content-Length"] = new[] { "11" }; await context.Response.WriteAsync("Hello World"); - }, testContext, "http://127.0.0.1:0/\u0041\u030A")) + }, testContext, "http://127.0.0.1:0/A")) { using (var connection = server.CreateConnection()) { await connection.SendEnd( - "GET /%41%CC%8A/A/../B/%41%CC%8A HTTP/1.0", + "GET /A/0/../B/C HTTP/1.0", "", ""); await connection.ReceiveEnd( diff --git a/test/Microsoft.AspNetCore.Server.KestrelTests/ServerAddressTests.cs b/test/Microsoft.AspNetCore.Server.KestrelTests/ServerAddressTests.cs index f38ec1d367..ee40a855e2 100644 --- a/test/Microsoft.AspNetCore.Server.KestrelTests/ServerAddressTests.cs +++ b/test/Microsoft.AspNetCore.Server.KestrelTests/ServerAddressTests.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Text; using Microsoft.AspNetCore.Server.Kestrel; using Xunit; @@ -68,15 +67,6 @@ namespace Microsoft.AspNetCore.Server.KestrelTests Assert.Equal(toString ?? url, serverAddress.ToString()); } - [Fact] - public void PathBaseIsNormalized() - { - var serverAddres = ServerAddress.FromUrl("http://localhost:8080/p\u0041\u030Athbase"); - - Assert.True(serverAddres.PathBase.IsNormalized(NormalizationForm.FormC)); - Assert.Equal("/p\u00C5thbase", serverAddres.PathBase); - } - [Fact] public void WithHostReturnsNewInstanceWithDifferentHost() {