From 67155ff5c041c2d3329bf2b0d4b57c3e7b05e5bb Mon Sep 17 00:00:00 2001 From: dushixiang <798148596@qq.com> Date: Fri, 5 Mar 2021 20:49:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B7=AF=E7=94=B1=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/api/middleware.go | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/pkg/api/middleware.go b/pkg/api/middleware.go index 3092b5b..ffd9c4e 100644 --- a/pkg/api/middleware.go +++ b/pkg/api/middleware.go @@ -5,6 +5,7 @@ import ( "github.com/labstack/echo/v4" "next-terminal/pkg/global" "next-terminal/pkg/model" + "regexp" "strings" "time" ) @@ -27,19 +28,32 @@ func ErrorHandler(next echo.HandlerFunc) echo.HandlerFunc { func Auth(next echo.HandlerFunc) echo.HandlerFunc { - urls := []string{"/download", "/recording", "/login", "/static", "/favicon.ico", "/logo.svg", "/asciinema"} + startWithUrls := []string{"/login", "/static", "/favicon.ico", "/logo.svg", "/asciinema"} + + download := regexp.MustCompile(`/sessions/\w{8}(-\w{4}){3}-\w{12}/download`) + recording := regexp.MustCompile(`/sessions/\w{8}(-\w{4}){3}-\w{12}/recording`) return func(c echo.Context) error { + + uri := c.Request().RequestURI + if uri == "/" || strings.HasPrefix(uri, "/#") { + return next(c) + } // 路由拦截 - 登录身份、资源权限判断等 - for i := range urls { - if c.Request().RequestURI == "/" || strings.HasPrefix(c.Request().RequestURI, "/#") { - return next(c) - } - if strings.HasPrefix(c.Request().RequestURI, urls[i]) { + for i := range startWithUrls { + if strings.HasPrefix(uri, startWithUrls[i]) { return next(c) } } + if download.FindString(uri) != "" { + return next(c) + } + + if recording.FindString(uri) != "" { + return next(c) + } + token := GetToken(c) cacheKey := strings.Join([]string{Token, token}, ":") authorization, found := global.Cache.Get(cacheKey)