mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-15 09:59:08 +02:00
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package middleware
|
|
|
|
import (
|
|
"github.com/gorilla/mux"
|
|
"github.com/netbirdio/netbird/management/server/account"
|
|
"github.com/netbirdio/netbird/management/server/auth"
|
|
"github.com/netbirdio/netbird/management/server/telemetry"
|
|
"github.com/netbirdio/netbird/shared/ratelimit"
|
|
"github.com/rs/cors"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func BuildMiddleware(rateLimiter *ratelimit.APIRateLimiter, authManager auth.Manager, accountManager account.Manager, metrics telemetry.AppMetrics) []mux.MiddlewareFunc {
|
|
toret := make([]mux.MiddlewareFunc, 0)
|
|
|
|
toret = append(toret, metrics.HTTPMiddleware().Handler)
|
|
toret = append(toret, cors.AllowAll().Handler)
|
|
|
|
if rateLimiter == nil {
|
|
log.Warn("NewAPIHandler: nil rate limiter, rate limiting disabled")
|
|
rateLimiter = ratelimit.NewAPIRateLimiter(nil)
|
|
rateLimiter.SetEnabled(false)
|
|
}
|
|
toret = append(toret, NewAuthMiddleware(
|
|
authManager,
|
|
accountManager.GetAccountIDFromUserAuth,
|
|
accountManager.SyncUserJWTGroups,
|
|
accountManager.GetUserFromUserAuth,
|
|
rateLimiter,
|
|
metrics.GetMeter(),
|
|
).Handler)
|
|
|
|
return toret
|
|
}
|