Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app.go
diff options
context:
space:
mode:
authorVladimir Shushlin <v.shushlin@gmail.com>2021-12-08 18:50:25 +0300
committerVladimir Shushlin <v.shushlin@gmail.com>2021-12-13 15:46:18 +0300
commit197d53c3f8c20942f76f111cc7bf6aac04c0dad4 (patch)
treedce0eda3e778f18229114607f45bec4726ce576c /app.go
parent94f6f41485e4698f59eb1862729e454c1f5f302b (diff)
refactor: abstract ratelimiter package
We want to add domain-based ratelimiter. The logic will be identical, but we'll use host instead of IP address.
Diffstat (limited to 'app.go')
-rw-r--r--app.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/app.go b/app.go
index 508b11fa..6030cad8 100644
--- a/app.go
+++ b/app.go
@@ -260,15 +260,16 @@ func (a *theApp) buildHandlerPipeline() (http.Handler, error) {
if a.config.RateLimit.SourceIPLimitPerSecond > 0 {
rl := ratelimiter.New(
- ratelimiter.WithSourceIPCacheMaxSize(ratelimiter.DefaultSourceIPCacheSize),
- ratelimiter.WithSourceIPCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries),
- ratelimiter.WithSourceIPCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests),
+ "source_ip",
+ ratelimiter.WithCacheMaxSize(ratelimiter.DefaultSourceIPCacheSize),
+ ratelimiter.WithCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries),
+ ratelimiter.WithCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests),
ratelimiter.WithBlockedCountMetric(metrics.RateLimitSourceIPBlockedCount),
- ratelimiter.WithSourceIPLimitPerSecond(a.config.RateLimit.SourceIPLimitPerSecond),
- ratelimiter.WithSourceIPBurstSize(a.config.RateLimit.SourceIPBurst),
+ ratelimiter.WithLimitPerSecond(a.config.RateLimit.SourceIPLimitPerSecond),
+ ratelimiter.WithBurstSize(a.config.RateLimit.SourceIPBurst),
)
- handler = rl.SourceIPLimiter(handler)
+ handler = rl.Middleware(handler)
}
// Health Check