package middleware | |
import ( | |
"github.com/labstack/echo" | |
"jetbrains-ai-proxy/internal/config" | |
"log" | |
"net/http" | |
"strings" | |
) | |
func BearerAuth() echo.MiddlewareFunc { | |
return func(next echo.HandlerFunc) echo.HandlerFunc { | |
return func(c echo.Context) error { | |
// 获取Authorization header | |
auth := c.Request().Header.Get("Authorization") | |
if auth == "" || !strings.HasPrefix(auth, "Bearer ") { | |
return echo.NewHTTPError(http.StatusUnauthorized, "invalid authorization header") | |
} | |
token := strings.TrimPrefix(auth, "Bearer ") | |
if token != config.JetbrainsAiConfig.BearerToken || token == "" { | |
log.Printf("invalid token: %s", token) | |
return echo.NewHTTPError(http.StatusUnauthorized, "invalid token") | |
} | |
return next(c) | |
} | |
} | |
} | |