chore: use common internal auth

This commit is contained in:
Grendgi
2026-06-17 14:26:04 +03:00
parent ea2063ff40
commit ccd56165c7

View File

@@ -32,8 +32,14 @@ func (s Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
writeJSON(w, http.StatusOK, map[string]string{"service": "monitoring-pf", "ui": "portal", "api": "go"}) writeJSON(w, http.StatusOK, map[string]string{"service": "monitoring-pf", "ui": "portal", "api": "go"})
case !strings.HasPrefix(path, "/api/v1"): case !strings.HasPrefix(path, "/api/v1"):
writeError(w, http.StatusNotFound, "not found") writeError(w, http.StatusNotFound, "not found")
case !s.checkInternalAuth(w, r): default:
return commonmw.InternalAuth(s.App.Cfg.InternalAPIKey)(http.HandlerFunc(s.serveAPI)).ServeHTTP(w, r)
}
}
func (s Server) serveAPI(w http.ResponseWriter, r *http.Request) {
path := s.apiPath(r.URL.Path)
switch {
case path == "/api/v1/access/me" && r.Method == http.MethodGet: case path == "/api/v1/access/me" && r.Method == http.MethodGet:
s.accessMe(w, r) s.accessMe(w, r)
case path == "/api/v1/summary" && r.Method == http.MethodGet: case path == "/api/v1/summary" && r.Method == http.MethodGet:
@@ -55,18 +61,6 @@ func (s Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
} }
} }
func (s Server) checkInternalAuth(w http.ResponseWriter, r *http.Request) bool {
want := strings.TrimSpace(s.App.Cfg.InternalAPIKey)
if want == "" {
return true
}
if r.Header.Get("X-Internal-Key") != want {
writeError(w, http.StatusUnauthorized, "unauthorized")
return false
}
return true
}
func (s Server) apiPath(path string) string { func (s Server) apiPath(path string) string {
base := s.App.Cfg.PublicBasePath base := s.App.Cfg.PublicBasePath
if base != "" && path == base { if base != "" && path == base {