diff options
author | Vladimir Shushlin <v.shushlin@gmail.com> | 2021-12-08 19:41:26 +0300 |
---|---|---|
committer | Vladimir Shushlin <v.shushlin@gmail.com> | 2021-12-13 15:46:55 +0300 |
commit | c190b1fc1175110e0ad1cd5570033c039c2bc1fb (patch) | |
tree | c2b8b5e7634dd181dac537766e1551ab673bd105 /app.go | |
parent | 197d53c3f8c20942f76f111cc7bf6aac04c0dad4 (diff) |
refactor: move ratelimiter configuration to handlers package
Diffstat (limited to 'app.go')
-rw-r--r-- | app.go | 16 |
1 files changed, 2 insertions, 14 deletions
@@ -32,7 +32,6 @@ import ( "gitlab.com/gitlab-org/gitlab-pages/internal/httperrors" "gitlab.com/gitlab-org/gitlab-pages/internal/logging" "gitlab.com/gitlab-org/gitlab-pages/internal/netutil" - "gitlab.com/gitlab-org/gitlab-pages/internal/ratelimiter" "gitlab.com/gitlab-org/gitlab-pages/internal/rejectmethods" "gitlab.com/gitlab-org/gitlab-pages/internal/request" "gitlab.com/gitlab-org/gitlab-pages/internal/routing" @@ -237,6 +236,7 @@ func setRequestScheme(r *http.Request) *http.Request { return r } +// TODO: move the pipeline configuration to internal/pipeline https://gitlab.com/gitlab-org/gitlab-pages/-/issues/670 func (a *theApp) buildHandlerPipeline() (http.Handler, error) { // Handlers should be applied in a reverse order handler := a.serveFileOrNotFoundHandler() @@ -258,19 +258,7 @@ func (a *theApp) buildHandlerPipeline() (http.Handler, error) { handler = routing.NewMiddleware(handler, a.source) - if a.config.RateLimit.SourceIPLimitPerSecond > 0 { - rl := ratelimiter.New( - "source_ip", - ratelimiter.WithCacheMaxSize(ratelimiter.DefaultSourceIPCacheSize), - ratelimiter.WithCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries), - ratelimiter.WithCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests), - ratelimiter.WithBlockedCountMetric(metrics.RateLimitSourceIPBlockedCount), - ratelimiter.WithLimitPerSecond(a.config.RateLimit.SourceIPLimitPerSecond), - ratelimiter.WithBurstSize(a.config.RateLimit.SourceIPBurst), - ) - - handler = rl.Middleware(handler) - } + handler = handlers.Ratelimiter(handler, a.config) // Health Check handler, err = a.healthCheckMiddleware(handler) |