From 0aafe8baa3bd217d029c5e9ee8b4b8b692d87e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Sat, 24 May 2025 15:10:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/http/middleware/entrance.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/http/middleware/entrance.go b/internal/http/middleware/entrance.go index 75ac5dbe..55ab6d3e 100644 --- a/internal/http/middleware/entrance.go +++ b/internal/http/middleware/entrance.go @@ -11,8 +11,6 @@ import ( "github.com/go-rat/sessions" "github.com/knadh/koanf/v2" "github.com/leonelquinteros/gotext" - "github.com/spf13/cast" - "github.com/tnb-labs/panel/pkg/punycode" ) @@ -26,7 +24,7 @@ func Entrance(t *gotext.Locale, conf *koanf.Koanf, session *sessions.Manager) fu return } - entrance := conf.String("http.entrance") + entrance := strings.TrimSuffix(conf.String("http.entrance"), "/") if !strings.HasPrefix(entrance, "/") { entrance = "/" + entrance } @@ -58,8 +56,8 @@ func Entrance(t *gotext.Locale, conf *koanf.Koanf, session *sessions.Manager) fu return } - // 情况二:请求路径与入口路径相同,标记通过验证并重定向到登录页面 - if strings.TrimSuffix(r.URL.Path, "/") == strings.TrimSuffix(entrance, "/") { + // 情况二:请求路径与入口路径相同或者未设置访问入口,标记通过验证并重定向到登录页面 + if (strings.TrimSuffix(r.URL.Path, "/") == entrance || entrance == "/") && sess.Missing("verify_entrance") { sess.Put("verify_entrance", true) render := chix.NewRender(w, r) defer render.Release() @@ -82,7 +80,7 @@ func Entrance(t *gotext.Locale, conf *koanf.Koanf, session *sessions.Manager) fu // 情况三:非调试模式且未通过验证的请求,返回错误 if !conf.Bool("app.debug") && - !cast.ToBool(sess.Get("verify_entrance", false)) && + sess.Missing("verify_entrance") && r.URL.Path != "/robots.txt" { Abort(w, http.StatusTeapot, t.Get("invalid access entrance")) return