/
advanceddev
/
license-server
Обзор
Документация
Войти
/
advanceddev
/
license-server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
2
CI/CD
Аналитика
Безопасность
master
internal/middleware/admin_auth.go
34 строки
952 B
advanceddev
fix: security & reliability hardening for rate limiter, auth, and audit
10 авг 2026, 23:52
Не верифицирован
10 авг 2026, 23:52
aef6073
Код
Авторство
О чём код?
// Package middleware -- package middleware import ( "crypto/subtle" "net/http" ) // AdminAuth - проверяет Bearer-токен для админских эндпоинтов. func AdminAuth(apiKey string) func(http.Handler) http.Handler { const bearerPrefix = "Bearer " return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { auth := r.Header.Get("Authorization") if len(auth) < len(bearerPrefix)+1 { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusUnauthorized) w.Write([]byte(`{"error":"unauthorized"}`)) return } token := auth[len(bearerPrefix):] if subtle.ConstantTimeCompare([]byte(token), []byte(apiKey)) != 1 { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusUnauthorized) w.Write([]byte(`{"error":"unauthorized"}`)) return } next.ServeHTTP(w, r) }) } }