relay-server/admin/middleware.go
2025-12-23 16:38:32 +03:00

27 lines
539 B
Go

package admin
import (
"net/http"
)
func requireAPIKey(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
key := r.Header.Get("apikey")
ip := r.RemoteAddr
if key == "" {
adminLogger.Printf("ADMIN AUTH_MISSING ip=%s", ip)
http.Error(w, "missing api key", http.StatusUnauthorized)
return
}
if key != ApiKey {
adminLogger.Printf("ADMIN AUTH_FAIL ip=%s", ip)
http.Error(w, "invalid api key", http.StatusForbidden)
return
}
next.ServeHTTP(w, r)
})
}