Browse Source

Add enabled field to rate limiter settings

feature/update-route-registration
Fabian Vowie 3 years ago
parent
commit
66b240943f
No known key found for this signature in database GPG Key ID: C27317C33B27C410
  1. 3
      main.go
  2. 2
      settings/settings.go
  3. 1
      settings/settings_test.go

3
main.go

@ -71,7 +71,10 @@ func main() {
r := mux.NewRouter() r := mux.NewRouter()
r.Use(authMiddleware.Middleware) r.Use(authMiddleware.Middleware)
if appSettings.RateLimiter.Enabled {
r.Use(rateLimiterMiddleware.Middleware) r.Use(rateLimiterMiddleware.Middleware)
}
r.HandleFunc("/", IndexHandler) r.HandleFunc("/", IndexHandler)

2
settings/settings.go

@ -27,6 +27,7 @@ type StorageSettings struct {
} }
type RateLimiterSettings struct { type RateLimiterSettings struct {
Enabled bool `json:"enabled"`
RequestsPerMinute int `json:"requests_per_minute"` RequestsPerMinute int `json:"requests_per_minute"`
AllowedBurst int `json:"allowed_burst"` AllowedBurst int `json:"allowed_burst"`
} }
@ -58,6 +59,7 @@ func LoadSettings(fileSystem afero.Fs) (Settings, error) {
Endpoint: "127.0.0.1:8000", Endpoint: "127.0.0.1:8000",
Token: "changeme", Token: "changeme",
RateLimiter: RateLimiterSettings{ RateLimiter: RateLimiterSettings{
Enabled: true,
RequestsPerMinute: 20, RequestsPerMinute: 20,
AllowedBurst: 5, AllowedBurst: 5,
}, },

1
settings/settings_test.go

@ -14,6 +14,7 @@ func TestSettingsParsing(t *testing.T) {
"endpoint": "0.0.0.0:8000", "endpoint": "0.0.0.0:8000",
"token": "foobar", "token": "foobar",
"rate_limiter": { "rate_limiter": {
"enabled": true,
"requests_per_minute": 20, "requests_per_minute": 20,
"allowed_burst": 5 "allowed_burst": 5
}, },

Loading…
Cancel
Save