chore: use common internal auth
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user