mirror of
https://github.com/WJQSERVER-STUDIO/ghproxy.git
synced 2026-02-03 08:11:11 +08:00
fix
This commit is contained in:
parent
c0a9ed11e3
commit
b9a7f30705
1 changed files with 14 additions and 5 deletions
|
|
@ -35,18 +35,27 @@ func NoRouteHandler(cfg *config.Config, blacklist *config.Blacklist) gin.Handler
|
||||||
rawPath := strings.TrimPrefix(c.Request.URL.RequestURI(), "/")
|
rawPath := strings.TrimPrefix(c.Request.URL.RequestURI(), "/")
|
||||||
re := regexp.MustCompile(`^(http:|https:)?/?/?(.*)`)
|
re := regexp.MustCompile(`^(http:|https:)?/?/?(.*)`)
|
||||||
matches := re.FindStringSubmatch(rawPath)
|
matches := re.FindStringSubmatch(rawPath)
|
||||||
|
logw("Matches: %v", matches[2])
|
||||||
|
|
||||||
|
if len(matches) < 3 {
|
||||||
|
logw("Invalid URL: %s", rawPath)
|
||||||
|
c.String(http.StatusForbidden, "Invalid URL.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
rawPath = "https://" + matches[2]
|
rawPath = "https://" + matches[2]
|
||||||
|
|
||||||
// 提取用户名和仓库名,格式为 <username>/<repo>
|
// 提取用户名和仓库名,格式为 handle/<username>/<repo>/*
|
||||||
pathParts := strings.Split(matches[2], "/")
|
pathmatches := regexp.MustCompile(`^([^/]+)/([^/]+)/([^/]+)/.*`)
|
||||||
if len(pathParts) < 3 {
|
pathParts := pathmatches.FindStringSubmatch(matches[2])
|
||||||
|
if len(pathParts) < 4 {
|
||||||
logw("Invalid path: %s", rawPath)
|
logw("Invalid path: %s", rawPath)
|
||||||
c.String(http.StatusForbidden, "Invalid path; expected username/repo.")
|
c.String(http.StatusForbidden, "Invalid path; expected username/repo.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
username := pathParts[1]
|
|
||||||
repo := pathParts[2]
|
username := pathParts[2]
|
||||||
|
repo := pathParts[3]
|
||||||
logw("Blacklist Check > Username: %s, Repo: %s", username, repo)
|
logw("Blacklist Check > Username: %s, Repo: %s", username, repo)
|
||||||
|
|
||||||
if blacklist.Blist == nil {
|
if blacklist.Blist == nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue