From 49dc5af93081db4861836198e4ce2d8b94eafae4 Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Sun, 30 Sep 2018 12:34:19 -0700 Subject: [PATCH 1/4] Update dependencies.props [auto-updated: dependencies] --- build/dependencies.props | 32 ++++++++++++++++---------------- korebuild-lock.txt | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/build/dependencies.props b/build/dependencies.props index fb9abf0846..9d10e1f140 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -3,24 +3,24 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.2.0-preview1-20180918.1 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 0.6.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 + 2.2.0-preview1-20180928.5 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 0.6.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 2.0.9 2.1.3 - 2.2.0-preview2-26905-02 + 2.2.0-preview3-26927-02 15.6.1 4.7.49 2.0.3 diff --git a/korebuild-lock.txt b/korebuild-lock.txt index 649bf2ba0b..26697a21fa 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.2.0-preview1-20180918.1 -commithash:ad5e3fc53442741a0dd49bce437d2ac72f4b5800 +version:2.2.0-preview1-20180928.5 +commithash:43faa29f679f47b88689d645b39e6be5e0055d70 From 6e91a8e72e515c0f581f714826ef726a24223c6b Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Sun, 7 Oct 2018 19:36:03 +0000 Subject: [PATCH 2/4] Update dependencies.props [auto-updated: dependencies] --- build/dependencies.props | 32 ++++++++++++++++---------------- korebuild-lock.txt | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/build/dependencies.props b/build/dependencies.props index 9d10e1f140..aeb5a7c33c 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -3,24 +3,24 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.2.0-preview1-20180928.5 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 0.6.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 - 2.2.0-preview3-35359 + 2.2.0-preview2-20181004.6 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 0.6.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 + 2.2.0-preview3-35425 2.0.9 2.1.3 - 2.2.0-preview3-26927-02 + 2.2.0-preview3-27001-02 15.6.1 4.7.49 2.0.3 diff --git a/korebuild-lock.txt b/korebuild-lock.txt index 26697a21fa..96fe3217ef 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.2.0-preview1-20180928.5 -commithash:43faa29f679f47b88689d645b39e6be5e0055d70 +version:2.2.0-preview2-20181004.6 +commithash:c04c4b2f5018632647f96210ab01876661302dac From 7a3a936ba52c29dd680aca035d98008b4d0a30fd Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Tue, 16 Oct 2018 12:48:20 -0700 Subject: [PATCH 3/4] Update package branding for 2.2 RTM --- version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.props b/version.props index 704cac087b..4889a26987 100644 --- a/version.props +++ b/version.props @@ -1,7 +1,7 @@ 2.2.0 - preview3 + rtm $(VersionPrefix) $(VersionPrefix)-$(VersionSuffix)-final t000 From a43587290fecff5a1229d8cb7f26603c01c7ab1d Mon Sep 17 00:00:00 2001 From: itminus Date: Wed, 17 Oct 2018 23:07:37 +0800 Subject: [PATCH 4/4] fix : DefaultFilesMiddleware serve with unicode path (#257) --- .../DefaultFilesMiddleware.cs | 2 +- .../DefaultFilesMiddlewareTests.cs | 16 ++++++++++++++-- .../SubFolder/你好/default.html | 11 +++++++++++ .../SubFolder/你好/世界/default.html | 11 +++++++++++ 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/default.html create mode 100644 test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/世界/default.html diff --git a/src/Microsoft.AspNetCore.StaticFiles/DefaultFilesMiddleware.cs b/src/Microsoft.AspNetCore.StaticFiles/DefaultFilesMiddleware.cs index e879bcf886..3c3a1c60b8 100644 --- a/src/Microsoft.AspNetCore.StaticFiles/DefaultFilesMiddleware.cs +++ b/src/Microsoft.AspNetCore.StaticFiles/DefaultFilesMiddleware.cs @@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.StaticFiles for (int matchIndex = 0; matchIndex < _options.DefaultFileNames.Count; matchIndex++) { string defaultFile = _options.DefaultFileNames[matchIndex]; - var file = _fileProvider.GetFileInfo(subpath + defaultFile); + var file = _fileProvider.GetFileInfo(subpath.Value + defaultFile); // TryMatchPath will make sure subpath always ends with a "/" by adding it if needed. if (file.Exists) { diff --git a/test/Microsoft.AspNetCore.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs b/test/Microsoft.AspNetCore.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs index 4601522333..7df375d2d4 100644 --- a/test/Microsoft.AspNetCore.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs +++ b/test/Microsoft.AspNetCore.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -9,6 +9,7 @@ using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.TestHost; using Microsoft.AspNetCore.Testing.xunit; using Microsoft.Extensions.FileProviders; @@ -75,6 +76,8 @@ namespace Microsoft.AspNetCore.StaticFiles [InlineData("", @".", "/SubFolder/")] [InlineData("", @"./", "/SubFolder/")] [InlineData("", @"./SubFolder", "/")] + [InlineData("", @"./SubFolder", "/你好/")] + [InlineData("", @"./SubFolder", "/你好/世界/")] public async Task FoundDirectoryWithDefaultFile_PathModified_All(string baseUrl, string baseDir, string requestUrl) { await FoundDirectoryWithDefaultFile_PathModified(baseUrl, baseDir, requestUrl); @@ -85,6 +88,8 @@ namespace Microsoft.AspNetCore.StaticFiles [OSSkipCondition(OperatingSystems.MacOSX)] [InlineData("", @".\", "/SubFolder/")] [InlineData("", @".\subFolder", "/")] + [InlineData("", @".\SubFolder", "/你好/")] + [InlineData("", @".\SubFolder", "/你好/世界/")] public async Task FoundDirectoryWithDefaultFile_PathModified_Windows(string baseUrl, string baseDir, string requestUrl) { await FoundDirectoryWithDefaultFile_PathModified(baseUrl, baseDir, requestUrl); @@ -114,6 +119,8 @@ namespace Microsoft.AspNetCore.StaticFiles [InlineData("", @".", "/SubFolder", "")] [InlineData("", @"./", "/SubFolder", "")] [InlineData("", @"./", "/SubFolder", "?a=b")] + [InlineData("", @"./SubFolder", "/你好", "?a=b")] + [InlineData("", @"./SubFolder", "/你好/世界", "?a=b")] public async Task NearMatch_RedirectAddSlash_All(string baseUrl, string baseDir, string requestUrl, string queryString) { await NearMatch_RedirectAddSlash(baseUrl, baseDir, requestUrl, queryString); @@ -124,6 +131,8 @@ namespace Microsoft.AspNetCore.StaticFiles [OSSkipCondition(OperatingSystems.MacOSX)] [InlineData("", @".\", "/SubFolder", "")] [InlineData("", @".\", "/SubFolder", "?a=b")] + [InlineData("", @".\SubFolder", "/你好", "?a=b")] + [InlineData("", @".\SubFolder", "/你好/世界", "?a=b")] public async Task NearMatch_RedirectAddSlash_Windows(string baseUrl, string baseDir, string requestUrl, string queryString) { await NearMatch_RedirectAddSlash(baseUrl, baseDir, requestUrl, queryString); @@ -141,7 +150,10 @@ namespace Microsoft.AspNetCore.StaticFiles var response = await server.CreateRequest(requestUrl + queryString).GetAsync(); Assert.Equal(HttpStatusCode.Moved, response.StatusCode); - Assert.Equal(requestUrl + "/" + queryString, response.Headers.GetValues("Location").FirstOrDefault()); + // the url in the header of `Location: /xxx/xxx` should be encoded + var expectedURL = UriHelper.BuildRelative(baseUrl, requestUrl + "/", new QueryString(queryString), new FragmentString()); + var actualURL = response.Headers.GetValues("Location").FirstOrDefault(); + Assert.Equal(expectedURL, actualURL); Assert.Empty((await response.Content.ReadAsByteArrayAsync())); } } diff --git a/test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/default.html b/test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/default.html new file mode 100644 index 0000000000..4740d83682 --- /dev/null +++ b/test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/default.html @@ -0,0 +1,11 @@ + + + + + + + + + Hello World + + \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/世界/default.html b/test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/世界/default.html new file mode 100644 index 0000000000..4740d83682 --- /dev/null +++ b/test/Microsoft.AspNetCore.StaticFiles.Tests/SubFolder/你好/世界/default.html @@ -0,0 +1,11 @@ + + + + + + + + + Hello World + + \ No newline at end of file