diff options
author | Brendan Abolivier <contact@brendanabolivier.com> | 2019-03-05 14:25:33 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-05 14:25:33 +0000 |
commit | a4c3a361b70bc02d65104240bef1b3cbb110bf22 (patch) | |
tree | d18278c487514427eeef8d5a2eeb36a8c47a00b6 /synapse/config | |
parent | Merge pull request #4795 from matrix-org/anoa/configinatoractoring (diff) | |
download | synapse-a4c3a361b70bc02d65104240bef1b3cbb110bf22.tar.xz |
Add rate-limiting on registration (#4735)
* Rate-limiting for registration * Add unit test for registration rate limiting * Add config parameters for rate limiting on auth endpoints * Doc * Fix doc of rate limiting function Co-Authored-By: babolivier <contact@brendanabolivier.com> * Incorporate review * Fix config parsing * Fix linting errors * Set default config for auth rate limiting * Fix tests * Add changelog * Advance reactor instead of mocked clock * Move parameters to registration specific config and give them more sensible default values * Remove unused config options * Don't mock the rate limiter un MAU tests * Rename _register_with_store into register_with_store * Make CI happy * Remove unused import * Update sample config * Fix ratelimiting test for py2 * Add non-guest test
Diffstat (limited to 'synapse/config')
-rw-r--r-- | synapse/config/registration.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/synapse/config/registration.py b/synapse/config/registration.py index 2881482f96..d32f6fff73 100644 --- a/synapse/config/registration.py +++ b/synapse/config/registration.py @@ -54,6 +54,13 @@ class RegistrationConfig(Config): config.get("disable_msisdn_registration", False) ) + self.rc_registration_requests_per_second = config.get( + "rc_registration_requests_per_second", 0.17, + ) + self.rc_registration_request_burst_count = config.get( + "rc_registration_request_burst_count", 3, + ) + def default_config(self, generate_secrets=False, **kwargs): if generate_secrets: registration_shared_secret = 'registration_shared_secret: "%s"' % ( @@ -140,6 +147,17 @@ class RegistrationConfig(Config): # users cannot be auto-joined since they do not exist. # autocreate_auto_join_rooms: true + + # Number of registration requests a client can send per second. + # Defaults to 1/minute (0.17). + # + #rc_registration_requests_per_second: 0.17 + + # Number of registration requests a client can send before being + # throttled. + # Defaults to 3. + # + #rc_registration_request_burst_count: 3.0 """ % locals() def add_arguments(self, parser): |