Fix bug on avatar middleware (#15125)

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
pull/15129/head
6543 4 years ago committed by GitHub
parent 6198403fbc
commit 151bedab52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      routers/routes/routes.go

@ -13,6 +13,7 @@ import (
"net/http" "net/http"
"os" "os"
"path" "path"
"path/filepath"
"strings" "strings"
"text/template" "text/template"
"time" "time"
@ -152,12 +153,21 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor
return return
} }
if !strings.HasPrefix(req.URL.RequestURI(), "/"+prefix) { prefix := strings.Trim(prefix, "/")
if !strings.HasPrefix(req.URL.EscapedPath(), "/"+prefix+"/") {
return return
} }
rPath := strings.TrimPrefix(req.URL.EscapedPath(), "/"+prefix+"/")
rPath := strings.TrimPrefix(req.URL.RequestURI(), "/"+prefix)
rPath = strings.TrimPrefix(rPath, "/") rPath = strings.TrimPrefix(rPath, "/")
if rPath == "" {
ctx.Error(404, "file not found")
return
}
rPath = path.Clean("/" + filepath.ToSlash(rPath))
rPath = rPath[1:]
//If we have matched and access to release or issue //If we have matched and access to release or issue
fr, err := objStore.Open(rPath) fr, err := objStore.Open(rPath)
if err != nil { if err != nil {

Loading…
Cancel
Save