summaryrefslogtreecommitdiff
path: root/internal/api/security/security.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-11-06 10:47:48 +0100
committerLibravatar GitHub <noreply@github.com>2022-11-06 09:47:48 +0000
commit4d66fb9603ada9b04f642576bbc541189876a3f3 (patch)
tree7f9b4f3a5ab95b20eb1ad4ceaf2e6779c1e02630 /internal/api/security/security.go
parent[bugfix] Check `media-description-min-chars` on submission of new status (#960) (diff)
downloadgotosocial-4d66fb9603ada9b04f642576bbc541189876a3f3.tar.xz
[feature] Make rate limit requests amount configurable (#966)
* update rate limit documentation * regenerate landingpage config helpers * make rate limit rate configurable
Diffstat (limited to 'internal/api/security/security.go')
-rw-r--r--internal/api/security/security.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/api/security/security.go b/internal/api/security/security.go
index f06862dd9..1dce111d3 100644
--- a/internal/api/security/security.go
+++ b/internal/api/security/security.go
@@ -23,6 +23,7 @@ import (
"time"
"github.com/superseriousbusiness/gotosocial/internal/api"
+ "github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/oauth"
"github.com/superseriousbusiness/gotosocial/internal/router"
@@ -46,11 +47,14 @@ func New(db db.DB, server oauth.Server) api.ClientModule {
// Route attaches security middleware to the given router
func (m *Module) Route(s router.Router) error {
- s.AttachMiddleware(m.RateLimit(RateLimitOptions{
- // accept a maximum of 1000 requests in 5 minutes window
- Period: 5 * time.Minute,
- Limit: 1000,
- }))
+ // only enable rate limit middleware if configured
+ // advanced-rate-limit-requests is greater than 0
+ if rateLimitRequests := config.GetAdvancedRateLimitRequests(); rateLimitRequests > 0 {
+ s.AttachMiddleware(m.RateLimit(RateLimitOptions{
+ Period: 5 * time.Minute,
+ Limit: int64(rateLimitRequests),
+ }))
+ }
s.AttachMiddleware(m.SignatureCheck)
s.AttachMiddleware(m.FlocBlock)
s.AttachMiddleware(m.ExtraHeaders)