middleware.go 708 B

1234567891011121314151617181920212223242526
  1. package controllers
  2. import (
  3. "net/http"
  4. "github.com/gravitl/netmaker/logic"
  5. "github.com/gravitl/netmaker/servercfg"
  6. )
  7. var limitedApis = map[string]struct{}{
  8. "/api/server/status": {},
  9. "/api/emqx/hosts": {},
  10. "/api/users/adm/authenticate": {},
  11. }
  12. func OnlyServerAPIWhenUnlicensedMiddleware(handler http.Handler) http.Handler {
  13. return http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
  14. if servercfg.ErrLicenseValidation != nil {
  15. if _, ok := limitedApis[request.URL.Path]; !ok {
  16. logic.ReturnErrorResponse(writer, request, logic.FormatError(servercfg.ErrLicenseValidation, "forbidden"))
  17. return
  18. }
  19. }
  20. handler.ServeHTTP(writer, request)
  21. })
  22. }