admin: jwtMiddleware сравнивает точный путь /ui/api/auth (не суффикс /auth)
This commit is contained in:
+4
-2
@@ -219,8 +219,10 @@ func (h *Handler) uiCredentials(w http.ResponseWriter, r *http.Request) {
|
|||||||
// НЕ вызывает PingNubesAPI повторно — токен уже провалидирован при /ui/api/auth.
|
// НЕ вызывает PingNubesAPI повторно — токен уже провалидирован при /ui/api/auth.
|
||||||
func (h *Handler) jwtMiddleware(next http.Handler) http.Handler {
|
func (h *Handler) jwtMiddleware(next http.Handler) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
// /ui/api/auth — публичный endpoint, пропускаем без проверки JWT
|
// /ui/api/auth — публичный endpoint, пропускаем без проверки JWT.
|
||||||
if strings.HasSuffix(r.URL.Path, "/auth") {
|
// Сравниваем ТОЧНЫЙ путь, а не суффикс "/auth": иначе, например,
|
||||||
|
// DELETE /ui/api/tenants/{id}/queues/auth пропускался бы без JWT и IDOR-проверки.
|
||||||
|
if r.URL.Path == "/ui/api/auth" {
|
||||||
next.ServeHTTP(w, r)
|
next.ServeHTTP(w, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user