From 550d6a559864708fb417d5a08506d5bdd179393e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hubert=20Wawrzy=C5=84czyk?= <107928848+fitithw@users.noreply.github.com> Date: Tue, 11 Oct 2022 13:17:56 +0200 Subject: [PATCH 1/2] Case-insensitive NuGet symbol file GUID --- routers/api/packages/api.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go index 0889006dd7571..fd185c2ba15d5 100644 --- a/routers/api/packages/api.go +++ b/routers/api/packages/api.go @@ -196,7 +196,7 @@ func Routes(ctx gocontext.Context) *web.Route { r.Put("/symbolpackage", nuget.UploadSymbolPackage) r.Delete("/{id}/{version}", nuget.DeletePackage) }, reqPackageAccess(perm.AccessModeWrite)) - r.Get("/symbols/{filename}/{guid:[0-9a-f]{32}}FFFFFFFF/{filename2}", nuget.DownloadSymbolFile) + r.Get("/symbols/{filename}/{guid:[0-9a-fA-F]{32}}[fF]{8}/{filename2}", nuget.DownloadSymbolFile) }, reqPackageAccess(perm.AccessModeRead)) }) r.Group("/npm", func() { From 4a0eeda680a055f81bdb0e78d9125e33e73b2606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hubert=20Wawrzy=C5=84czyk?= <hubert@fit-it.pl> Date: Tue, 11 Oct 2022 15:51:50 +0200 Subject: [PATCH 2/2] Properly fixed API --- routers/api/packages/api.go | 2 +- routers/api/packages/nuget/nuget.go | 2 +- tests/integration/api_packages_nuget_test.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go index fd185c2ba15d5..a54add0621ed1 100644 --- a/routers/api/packages/api.go +++ b/routers/api/packages/api.go @@ -196,7 +196,7 @@ func Routes(ctx gocontext.Context) *web.Route { r.Put("/symbolpackage", nuget.UploadSymbolPackage) r.Delete("/{id}/{version}", nuget.DeletePackage) }, reqPackageAccess(perm.AccessModeWrite)) - r.Get("/symbols/{filename}/{guid:[0-9a-fA-F]{32}}[fF]{8}/{filename2}", nuget.DownloadSymbolFile) + r.Get("/symbols/{filename}/{guid:[0-9a-fA-F]{32}[fF]{8}}/{filename2}", nuget.DownloadSymbolFile) }, reqPackageAccess(perm.AccessModeRead)) }) r.Group("/npm", func() { diff --git a/routers/api/packages/nuget/nuget.go b/routers/api/packages/nuget/nuget.go index eadf7486a5d2c..3c61ae28bb18f 100644 --- a/routers/api/packages/nuget/nuget.go +++ b/routers/api/packages/nuget/nuget.go @@ -353,7 +353,7 @@ func processUploadedFile(ctx *context.Context, expectedType nuget_module.Package // DownloadSymbolFile https://github.com/dotnet/symstore/blob/main/docs/specs/Simple_Symbol_Query_Protocol.md#request func DownloadSymbolFile(ctx *context.Context) { filename := ctx.Params("filename") - guid := ctx.Params("guid") + guid := ctx.Params("guid")[:32] filename2 := ctx.Params("filename2") if filename != filename2 { diff --git a/tests/integration/api_packages_nuget_test.go b/tests/integration/api_packages_nuget_test.go index 9d53311d3564a..8d5a5c7c82371 100644 --- a/tests/integration/api_packages_nuget_test.go +++ b/tests/integration/api_packages_nuget_test.go @@ -280,7 +280,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`) req = AddBasicAuthHeader(req, user.Name) MakeRequest(t, req, http.StatusNotFound) - req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFFFFF/%s", url, symbolFilename, symbolID, symbolFilename)) + req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFffff/%s", url, symbolFilename, symbolID, symbolFilename)) req = AddBasicAuthHeader(req, user.Name) MakeRequest(t, req, http.StatusOK)