summary refs log tree commit diff
path: root/tests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add plugin APIs for implementations of custom event rules.Brendan Abolivier2019-06-141-0/+79
|
* Merge pull request #5417 from matrix-org/rav/shared_ssl_contextErik Johnston2019-06-106-106/+341
|\ | | | | Share an SSL context object between SSL connections
| * fix ci on py2, againRichard van der Hoff2019-06-101-1/+1
| |
| * fix CI on python 2.7Richard van der Hoff2019-06-101-6/+4
| |
| * Tests for SSL certs for federation connectionsRichard van der Hoff2019-06-106-106/+343
| | | | | | | | Add some tests for bad certificates for federation and .well-known connections
* | Fix key verification when key stored with null valid_until_msErik Johnston2019-06-101-1/+49
|/ | | | | | | | | | Some keys are stored in the synapse database with a null valid_until_ms which caused an exception to be thrown when using that key. We fix this by treating nulls as zeroes, i.e. they keys will match verification requests with a minimum_valid_until_ms of zero (i.e. don't validate ts) but will not match requests with a non-zero minimum_valid_until_ms. Fixes #5391.
* Prevent multiple device list updates from breaking a batch send (#5156)Andrew Morgan2019-06-061-0/+69
| | | fixes #5153
* Set default room version to v4. (#5379)Neil Johnson2019-06-062-1/+8
| | | | Set default room version to v4.
* Add ability to perform password reset via email without trusting the ↵Andrew Morgan2019-06-061-1/+0
| | | | | | | | | | | | identity server (#5377) Sends password reset emails from the homeserver instead of proxying to the identity server. This is now the default behaviour for security reasons. If you wish to continue proxying password reset requests to the identity server you must now enable the email.trust_identity_server_for_password_resets option. This PR is a culmination of 3 smaller PRs which have each been separately reviewed: * #5308 * #5345 * #5368
* Stop hardcoding trust of old matrix.org key (#5374)Richard van der Hoff2019-06-062-15/+29
| | | | | | | | | | | | | | | | | There are a few changes going on here: * We make checking the signature on a key server response optional: if no verify_keys are specified, we trust to TLS to validate the connection. * We change the default config so that it does not require responses to be signed by the old key. * We replace the old 'perspectives' config with 'trusted_key_servers', which is also formatted slightly differently. * We emit a warning to the logs every time we trust a key server response signed by the old key.
* Merge pull request #5359 from matrix-org/rav/enable_tls_verificationRichard van der Hoff2019-06-061-3/+9
|\ | | | | Validate federation server TLS certificates by default.
| * Merge branch 'rav/fix_custom_ca' into rav/enable_tls_verificationRichard van der Hoff2019-06-051-3/+59
| |\
| * | Validate federation server TLS certificates by default.Richard van der Hoff2019-06-051-3/+9
| | |
* | | Merge pull request #5353 from matrix-org/rav/verify_key_loggingRichard van der Hoff2019-06-061-10/+8
|\ \ \ | |_|/ |/| | Associate a request_name with each verify request, for logging
| * | Associate a request_name with each verify request, for loggingRichard van der Hoff2019-06-051-10/+8
| |/ | | | | | | | | | | | | Also: * rename VerifyKeyRequest->VerifyJsonRequest * calculate key_ids on VerifyJsonRequest construction * refactor things to pass around VerifyJsonRequests instead of 4-tuples
* / Fix background updates to handle redactions/rejections (#5352)Erik Johnston2019-06-061-3/+59
|/ | | | | | | | * Fix background updates to handle redactions/rejections In background updates based on current state delta stream we need to handle that we may not have all the events (or at least that `get_events` may raise an exception).
* Don't bomb out on direct key fetches as soon as one failsRichard van der Hoff2019-06-041-7/+5
|
* Enforce validity period on server_keys for fed requests. (#5321)Richard van der Hoff2019-06-031-27/+108
| | | | | | | | When handling incoming federation requests, make sure that we have an up-to-date copy of the signing key. We do not yet enforce the validity period for event signatures.
* Unify v1 and v2 REST client APIs (#5226)Amber Brown2019-06-033-3/+2
|
* Merge pull request #5309 from matrix-org/rav/limit_displayname_lengthRichard van der Hoff2019-06-011-2/+60
|\ | | | | Limit displaynames and avatar URLs
| * add some testsRichard van der Hoff2019-06-011-2/+60
| |
* | Merge pull request #5276 from matrix-org/babolivier/account_validity_job_deltaErik Johnston2019-05-311-5/+10
|\ \ | | | | | | Allow configuring a range for the account validity startup job
| * | Move delta from +10% to -10%Brendan Abolivier2019-05-311-2/+2
| | |
| * | Make max_delta equal to period * 10%Brendan Abolivier2019-05-311-17/+1
| | |
| * | TypoBrendan Abolivier2019-05-281-1/+1
| | |
| * | Allow configuring a range for the account validity startup jobBrendan Abolivier2019-05-281-0/+21
| | | | | | | | | | | | | | | When enabling the account validity feature, Synapse will look at startup for registered account without an expiration date, and will set one equals to 'now + validity_period' for them. On large servers, it can mean that a large number of users will have the same expiration date, which means that they will all be sent a renewal email at the same time, which isn't ideal. In order to mitigate this, this PR allows server admins to define a 'max_delta' so that the expiration date is a random value in the [now + validity_period ; now + validity_period + max_delta] range. This allows renewal emails to be progressively sent over a configured period instead of being sent all in one big batch.
* | | Merge pull request #5278 from matrix-org/erikj/cleanup_bad_extremitiesErik Johnston2019-05-301-0/+248
|\ \ \ | | | | | | | | Add DB bg update to cleanup extremities.
| * | | Add testErik Johnston2019-05-291-0/+248
| | | |
* | | | Implement the SHHS complexity API (#5216)Amber Brown2019-05-301-0/+90
|/ / /
* | | Merge pull request #5251 from matrix-org/rav/server_keys/01-check_sigRichard van der Hoff2019-05-281-9/+75
|\ \ \ | | | | | | | | Ensure that server_keys fetched via a notary server are correctly signed.
| * | | Require sig from origin server on perspectives responsesRichard van der Hoff2019-05-231-9/+75
| | | |
* | | | Simplification to Keyring.wait_for_previous_lookups. (#5250)Richard van der Hoff2019-05-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The list of server names was redundant, since it was equivalent to the keys on the server_to_deferred map. This reduces the number of large lists being passed around, and has the benefit of deduplicating the entries in `wait_on`.
* | | | Merge pull request #5244 from matrix-org/rav/server_keys/00-factor-out-fetchersErik Johnston2019-05-231-6/+28
|\| | | | | | | | | | | Factor out KeyFetchers from KeyRing
| * | | Factor out KeyFetchers from KeyRingRichard van der Hoff2019-05-231-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than have three methods which have to have the same interface, factor out a separate interface which is provided by three implementations. I find it easier to grok the code this way.
* | | | Add config option for setting homeserver's default room version (#5223)Andrew Morgan2019-05-231-2/+5
|/ / / | | | | | | | | | | | | Replaces DEFAULT_ROOM_VERSION constant with a method that first checks the config, then returns a hardcoded value if the option is not present. That hardcoded value is now located in the server.py config file.
* | | Store key validity time in the storage layerRichard van der Hoff2019-05-232-22/+44
| | | | | | | | | | | | | | | | | | | | | | | | This is a first step to checking that the key is valid at the required moment. The idea here is that, rather than passing VerifyKey objects in and out of the storage layer, we instead pass FetchKeyResult objects, which simply wrap the VerifyKey and add a valid_until_ts field.
* | | Rewrite store_server_verify_key to store several keys at once (#5234)Richard van der Hoff2019-05-232-16/+42
| | | | | | | | | | | | | | | Storing server keys hammered the database a bit. This replaces the implementation which stored a single key, with one which can do many updates at once.
* | | Room Statistics (#4338)Amber Brown2019-05-212-0/+268
| |/ |/|
* | Merge pull request #5212 from matrix-org/erikj/deny_multiple_reactionsErik Johnston2019-05-211-1/+26
|\ \ | | | | | | Block attempts to annotate the same event twice
| * | Block attempts to annotate the same event twiceErik Johnston2019-05-201-1/+26
| | |
* | | Merge pull request #5204 from ↵Brendan Abolivier2019-05-211-0/+55
|\ \ \ | |/ / |/| / | |/ | | matrix-org/babolivier/account_validity_expiration_date Add startup background job for account validity
| * Add startup background job for account validityBrendan Abolivier2019-05-171-0/+55
| | | | | | | | If account validity is enabled in the server's configuration, this job will run at startup as a background job and will stick an expiration date to any registered account missing one.
* | Rename relation types to match MSCErik Johnston2019-05-201-11/+11
| |
* | Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-201-0/+539
|\ \ | | | | | | Land basic reaction and edit support.
| * | Fixup commentsErik Johnston2019-05-201-2/+2
| | |
| * | Correctly update aggregation counts after redactionErik Johnston2019-05-201-0/+37
| | |
| * | Make tests use different user for each reaction it sendsErik Johnston2019-05-171-12/+68
| | | | | | | | | | | | As users aren't allowed to react with the same emoji more than once.
| * | Add basic editing supportErik Johnston2019-05-161-9/+82
| | |
| * | Check that event is visible in new APIsErik Johnston2019-05-161-1/+1
| | |
| * | Add aggregations APIErik Johnston2019-05-161-3/+248
| | |
| * | Add simple pagination APIErik Johnston2019-05-151-0/+30
| | |
| * | Add simple send_relation API and track in DBErik Johnston2019-05-151-0/+98
| | |
| * | Merge branch 'erikj/fix_config_ratelimiting' into erikj/testErik Johnston2019-05-141-1/+2
| |\ \
* | | | Limit UserIds to a length that fits in a state key (#5198)ReidAnderson2019-05-201-0/+7
| | | |
* | | | Merge pull request #5196 from matrix-org/babolivier/per_room_profilesBrendan Abolivier2019-05-171-1/+69
|\ \ \ \ | | |_|/ | |/| | Add an option to disable per-room profiles
| * | | LintBrendan Abolivier2019-05-161-1/+0
| | | |
| * | | LintBrendan Abolivier2019-05-161-1/+3
| | | |
| * | | Forgot copyrightBrendan Abolivier2019-05-161-0/+1
| | | |
| * | | Add test caseBrendan Abolivier2019-05-161-1/+67
| | | |
* | | | Merge pull request #5174 from matrix-org/dbkr/add_dummy_flow_to_recaptcha_onlyDavid Baker2019-05-162-2/+9
|\ \ \ \ | |/ / / |/| | | Re-order registration stages to do msisdn & email auth last
| * | | Terms might not be the last stageDavid Baker2019-05-131-1/+1
| | | |
| * | | Merge remote-tracking branch 'origin/develop' into ↵David Baker2019-05-131-11/+11
| |\ \ \ | | | | | | | | | | | | | | | dbkr/add_dummy_flow_to_recaptcha_only
| * | | | And now I realise why the test is failing...David Baker2019-05-131-1/+8
| | | | |
* | | | | Make all the rate limiting options more consistent (#5181)Amber Brown2019-05-151-12/+8
| | | | |
* | | | | Merge pull request #5184 from matrix-org/erikj/expose_get_events_as_arrayErik Johnston2019-05-151-1/+1
|\ \ \ \ \ | | |_|/ / | |/| | / | |_|_|/ |/| | | Expose DataStore._get_events as get_events_as_list
| * | | Expose DataStore._get_events as get_events_as_listErik Johnston2019-05-141-1/+1
| | | | | | | | | | | | | | | | This is in preparation for reaction work which requires it.
* | | | Use correct config option for ratelimiting in testsErik Johnston2019-05-141-1/+2
|/ / /
* | | Migrate all tests to use the dict-based config format instead of hanging ↵Amber Brown2019-05-1321-203/+238
| | | | | | | | | | | | items off HomeserverConfig (#5171)
* | | Add ability to blacklist ip ranges for federation traffic (#5043)Andrew Morgan2019-05-131-0/+71
| |/ |/|
* | URL preview blacklisting fixes (#5155)Andrew Morgan2019-05-101-11/+11
|/ | | Prevents a SynapseError being raised inside of a IResolutionReceiver and instead opts to just return 0 results. This thus means that we have to lump a failed lookup and a blacklisted lookup together with the same error message, but the substitute should be generic enough to cover both cases.
* Run Black on the tests again (#5170)Amber Brown2019-05-1053-1169/+828
|
* Fix bogus imports in tests (#5154)Brendan Abolivier2019-05-083-5/+6
|
* add options to require an access_token to GET /profile and /publicRooms on ↵Matthew Hodgson2019-05-082-1/+123
| | | | | | | | | | | | | | | | | CS API (#5083) This commit adds two config options: * `restrict_public_rooms_to_local_users` Requires auth to fetch the public rooms directory through the CS API and disables fetching it through the federation API. * `require_auth_for_profile_requests` When set to `true`, requires that requests to `/profile` over the CS API are authenticated, and only returns the user's profile if the requester shares a room with the profile's owner, as per MSC1301. MSC1301 also specifies a behaviour for federation (only returning the profile if the server asking for it shares a room with the profile's owner), but that's currently really non-trivial to do in a not too expensive way. Next step is writing down a MSC that allows a HS to specify which user sent the profile query. In this implementation, Synapse won't send a profile query over federation if it doesn't believe it already shares a room with the profile's owner, though. Groups have been intentionally omitted from this commit.
* Do checks on aliases for incoming m.room.aliases events (#5128)Brendan Abolivier2019-05-081-0/+169
| | | | | Follow-up to #5124 Also added a bunch of checks to make sure everything (both the stuff added on #5124 and this PR) works as intended.
* Remove the requirement to authenticate for /admin/server_version. (#5122)Richard van der Hoff2019-05-072-26/+26
| | | | | | | | | This endpoint isn't much use for its intended purpose if you first need to get yourself an admin's auth token. I've restricted it to the `/_synapse/admin` path to make it a bit easier to lock down for those concerned about exposing this information. I don't imagine anyone is using it in anger currently.
* Add admin api for sending server_notices (#5121)Richard van der Hoff2019-05-0215-20/+23
|
* Move admin api impl to its own packageRichard van der Hoff2019-05-0116-37/+63
| | | | It doesn't really belong under rest/client/v1 any more.
* Config option for verifying federation certificates (MSC 1711) (#4967)Andrew Morgan2019-04-251-1/+2
|
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-1723-327/+928
|\ | | | | | | babolivier/account_expiration
| * Merge pull request #5047 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-171-1/+99
| |\ | | | | | | Send out emails with links to extend an account's validity period
| * | Remove periods from copyright headers (#5046)Andrew Morgan2019-04-112-2/+2
| | |
| * | Merge pull request #5027 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-092-3/+52
| |\ \ | | | | | | | | Add time-based account expiration
| * | | Rewrite Datastore.get_server_verify_keysRichard van der Hoff2019-04-091-3/+50
| | | | | | | | | | | | | | | | Rewrite this so that it doesn't hammer the database.
| * | | Rewrite test_keys as a HomeserverTestCaseRichard van der Hoff2019-04-081-19/+15
| | | |
| * | | Fix from_server buglet in get_keys_from_perspectivesRichard van der Hoff2019-04-081-0/+1
| | | | | | | | | | | | | | | | | | | | make sure we store the name of the server the keys came from, rather than the origin server, after doing a fetch-from-perspectives.
| * | | Merge pull request #5001 from matrix-org/rav/keyring_cleanupsRichard van der Hoff2019-04-081-0/+130
| |\ \ \ | | | | | | | | | | Cleanups in the Keyring
| | * | | test for get_keys_from_perspectivesRichard van der Hoff2019-04-041-0/+67
| | | | |
| | * | | add a test for get_keys_from_serverRichard van der Hoff2019-04-041-0/+63
| | | | |
| * | | | Add config option to block users from looking up 3PIDs (#5010)Brendan Abolivier2019-04-042-1/+66
| | | | |
| * | | | Add unit test for deleting groupsErik Johnston2019-04-031-0/+124
| | | | |
| * | | | Fix grammar and document get_current_users_in_room (#4998)Andrew Morgan2019-04-031-2/+2
| |/ / /
| * | | Rewrite KeyringTestCase as a HomeServerTestCase (#4986)Richard van der Hoff2019-04-031-107/+104
| | | | | | | | | | | | | | | | | | | | This is a bit fiddly due to the keyring doing weird things with logcontexts.
| * | | Remove presence lists (#4989)Neil Johnson2019-04-031-118/+0
| | | | | | | | | | | | Remove presence list support as per MSC 1819
| * | | Fix sync bug when accepting invites (#4956)Richard van der Hoff2019-04-023-49/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully this time we really will fix #4422. We need to make sure that the cache on `get_rooms_for_user_with_stream_ordering` is invalidated *before* the SyncHandler is notified for the new events, and we can now do so reliably via the `events` stream.
| * | | Neilj/fix threepid auth check (with tests) (#4474)Neil Johnson2019-04-011-0/+32
| | | | | | | | | | | | test threepid checking
| * | | Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-019-26/+32
| | | | | | | | | | | | | | | | Collect all the things that make room-versions different to one another into one place, so that it's easier to define new room versions.
| * | | Merge pull request #4942 from matrix-org/erikj/fix_presenceErik Johnston2019-03-281-1/+175
| |\ \ \ | | | | | | | | | | Use event streams to calculate presence
| | * | | Review commentsErik Johnston2019-03-281-5/+9
| | | | |
| | * | | Add unit testsErik Johnston2019-03-271-1/+171
| | | | |
| * | | | Move replication.tcp.streams into a packageRichard van der Hoff2019-03-271-1/+1
| |/ / /
* | | / Add management endpoints for account validityBrendan Abolivier2019-04-171-8/+87
| |_|/ |/| |
* | | Send out emails with links to extend an account's validity periodBrendan Abolivier2019-04-171-1/+99
| |/ |/|
* | Add account expiration featureBrendan Abolivier2019-04-092-3/+52
|/
* Make federation endpoints more tolerant of trailing slashes v2 (#4935)Andrew Morgan2019-03-261-3/+3
| | | Redo of https://github.com/matrix-org/synapse/pull/4840
* Fix bug where read-receipts lost their timestamps (#4927)Richard van der Hoff2019-03-254-0/+148
| | | | | Make sure that they are sent correctly over the replication stream. Fixes: #4898
* Use an explicit dbname for postgres connections in the tests. (#4928)Richard van der Hoff2019-03-251-18/+16
| | | | | | I don't have a database with the same name as my user, so leaving the database name unset fails. While we're at it, clear out some unused stuff in the test setup.
* Merge pull request #4869 from matrix-org/erikj/yaml_loadErik Johnston2019-03-222-3/+3
|\ | | | | Fix yaml warnings by using safe_load
| * Use yaml safe_loadErik Johnston2019-03-222-3/+3
| |
* | Some more porting to HomeserverTestCase and remove old RESTHelper (#4913)Amber Brown2019-03-224-230/+123
| |
* | Remove trailing slashes from outbound federation requests and retry on 400 ↵Andrew Morgan2019-03-212-0/+101
|\ \ | |/ |/| | | | | (#4840) As per #3622, we remove trailing slashes from outbound federation requests. However, to ensure that we remain backwards compatible with previous versions of Synapse, if we receive a HTTP 400 with `M_UNRECOGNIZED`, then we are likely talking to an older version of Synapse in which case we retry with a trailing slash appended to the request path.
| * lintAndrew Morgan2019-03-201-1/+1
| |
| * New test, fix issuesAndrew Morgan2019-03-201-0/+45
| |
| * Fix comments. v0.99.2 -> v0.99.3Andrew Morgan2019-03-201-1/+1
| |
| * Federation test fixed!Andrew Morgan2019-03-201-2/+5
| |
| * Better exception handlingAndrew Morgan2019-03-181-4/+1
| |
| * Correct var nameAndrew Morgan2019-03-131-0/+54
| |
| * i should have given up x3Andrew Morgan2019-03-131-39/+0
| |
| * i should have given up x2Andrew Morgan2019-03-131-0/+39
| |
| * Switch to wrapper function around _send_requestAndrew Morgan2019-03-131-2/+2
| |
| * Correct argument nameAndrew Morgan2019-03-121-2/+2
| |
| * Cleaner way of implementing trailing slashesAndrew Morgan2019-03-121-2/+4
| |
| * and againAndrew Morgan2019-03-111-1/+1
| |
| * Fix syntax errorAndrew Morgan2019-03-111-1/+1
| |
| * We're calling different functions nowAndrew Morgan2019-03-111-2/+2
| |
* | Merge pull request #4908 from matrix-org/erikj/block_peek_on_blocked_roomsErik Johnston2019-03-211-1/+65
|\ \ | | | | | | Deny peeking into rooms that have been blocked
| * | isortErik Johnston2019-03-211-1/+1
| | |
| * | Deny peeking into rooms that have been blockedErik Johnston2019-03-211-1/+65
| | |
* | | Merge pull request #4904 from matrix-org/erikj/fix_shutdownErik Johnston2019-03-211-1/+74
|\ \ \ | | | | | | | | Fixup shutdown room API
| * | | Fix typo and add descriptionErik Johnston2019-03-211-1/+5
| |/ /
| * | Rejig testcase to make it more extensibleErik Johnston2019-03-211-17/+22
| | |
| * | Remove debugErik Johnston2019-03-211-1/+0
| | |
| * | Add testsErik Johnston2019-03-211-1/+66
| | |
* | | Merge pull request #4896 from matrix-org/erikj/disable_room_directoryErik Johnston2019-03-212-3/+58
|\ \ \ | | | | | | | | Add option to disable search room lists
| * | | Add testErik Johnston2019-03-202-3/+58
| | | |
* | | | Log requests which are simulated by the unit tests. (#4905)Richard van der Hoff2019-03-201-8/+1
| | | | | | | | | | | | | | | | Rather than stubbing out the access_log, make it actually log the requests, which makes it a lot more obvious what is going on during tests.
* | | | Merge pull request #4895 from matrix-org/erikj/disable_user_searchErik Johnston2019-03-201-0/+52
|\ \ \ \ | |_|/ / |/| | | Add option to disable searching in the user dir
| * | | Add testErik Johnston2019-03-201-0/+52
| |/ /
* / / Batch up outgoing read-receipts to reduce federation traffic. (#4890)Richard van der Hoff2019-03-201-0/+128
|/ / | | | | | | Rate-limit outgoing read-receipts as per #4730.
* | Fix RegistrationTestCaseRichard van der Hoff2019-03-191-2/+9
| | | | | | | | turns out this relies on there being a `user_consent_version` set.
* | Use a regular HomeServerConfig object for unit testsRichard van der Hoff2019-03-191-11/+15
| | | | | | | | | | | | | | Rather than using a Mock for the homeserver config, use a genuine HomeServerConfig object. This makes for a more realistic test, and means that we don't have to keep remembering to add things to the mock config every time we add a new config setting.
* | Fix resource limits testsRichard van der Hoff2019-03-191-2/+5
| | | | | | | | | | Make sure that we have a `server_notices_mxid` set, given that we are relying on it.
* | Fix registration testRichard van der Hoff2019-03-191-1/+2
| | | | | | | | | | * Set allow_guest_access = True, since we rely on it * config doesn't have a `hostname` attribute; it is `server_name`
* | Fix email testRichard van der Hoff2019-03-191-0/+2
| | | | | | | | | | | | | | The Mailer expects the config object to have `email_smtp_pass` and `email_riot_base_url` attributes (and it won't by default, because the default config impl doesn't set any of the attributes unless email_enable_notifs is set).
* | Merge remote-tracking branch 'origin/develop' into HEADRichard van der Hoff2019-03-191-2/+22
|\ \
| * | fix test_auto_create_auto_join_where_no_consent (#4886)Neil Johnson2019-03-191-2/+22
| | |
* | | Enforce hs_disabled_message correctlyRichard van der Hoff2019-03-191-0/+17
|/ / | | | | | | | | Fixes a bug where hs_disabled_message was not enforced for 3pid-based requests if there was no server_notices_mxid configured.
* | Migrate the user directory initial population to a background task (#4864)Amber Brown2019-03-193-45/+79
| |
* | Add ratelimiting on failed login attempts (#4865)Brendan Abolivier2019-03-182-0/+47
| |
* | Add ratelimiting on login (#4821)Brendan Abolivier2019-03-153-4/+128
| | | | | | Add two ratelimiters on login (per-IP address and per-userID).
* | Revert "Make federation endpoints more tolerant of trailing slashes for some ↵Erik Johnston2019-03-141-3/+3
| | | | | | | | | | | | endpoints (#4793)" This reverts commit 290552fd836f4ae2dc1d893a7f72f7fff85365d3.
* | Merge pull request #4846 from matrix-org/hawkowl/userdir-searchErik Johnston2019-03-143-15/+22
|\ \ | |/ |/| Improve searching in the userdir
| * fixupAmber Brown2019-03-131-20/+1
| |
| * fixupAmber Brown2019-03-121-2/+2
| |
| * fixupAmber Brown2019-03-121-16/+20
| |
| * fixesAmber Brown2019-03-121-4/+12
| |
| * setup masterAmber Brown2019-03-111-0/+2
| |
| * Merge remote-tracking branch 'origin/develop' into hawkowl/userdir-searchAmber Brown2019-03-111-0/+1
| |\
| * | initialAmber Brown2019-03-111-0/+12
| | |
* | | Make federation endpoints more tolerant of trailing slashes for some ↵Andrew Morgan2019-03-111-3/+3
| |/ |/| | | | | | | endpoints (#4793) Server side of a solution towards #3622.
* | Disable captcha registration by default in testsAndrew Morgan2019-03-081-0/+1
|/
* Rewrite userdir to be faster (#4537)Amber Brown2019-03-072-43/+225
|
* Merge pull request #4772 from jbweston/jbweston/server-version-apiErik Johnston2019-03-051-2/+36
|\ | | | | Add 'server_version' endpoint to admin API
| * Add 'server_version' endpoint to admin APIJoseph Weston2019-03-011-1/+35
| | | | | | | | | | This is required because the 'Server' HTTP header is not always passed through proxies.
| * Import 'admin' module rather than 'register_servlets' directlyJoseph Weston2019-03-011-2/+2
| | | | | | | | | | | | We will later need also to import 'register_servlets' from the 'login' module, so we un-pollute the namespace now to keep the logical changes separate.
* | Add rate-limiting on registration (#4735)Brendan Abolivier2019-03-059-23/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* | Update test_typing to use HomeserverTestCase. (#4771)Richard van der Hoff2019-03-044-179/+175
|/
* Fix parsing of Content-Disposition headers (#4763)Richard van der Hoff2019-02-271-0/+45
| | | | | | | | | | | * Fix parsing of Content-Disposition headers TIL: filenames in content-dispostion headers can contain semicolons, and aren't %-encoded. * fix python2 incompatibility * Fix docstrings
* Move from TravisCI to BuildKite (#4752)Amber Brown2019-02-271-10/+34
|
* Fix unit testsErik Johnston2019-02-271-0/+6
|
* UPSERT many functionality (#4644)Amber Brown2019-02-201-0/+88
|
* Fix registration on workers (#4682)Erik Johnston2019-02-201-1/+1
| | | | | | | | | | * Move RegistrationHandler init to HomeServer * Move post registration actions to RegistrationHandler * Add post regisration replication endpoint * Newsfile
* Move register_device into handlerErik Johnston2019-02-181-70/+23
|
* Fix unit testsErik Johnston2019-02-181-6/+15
|
* Clarify and fix behaviour when there are multiple aliasesErik Johnston2019-02-141-0/+6
|
* Add configurable room list publishing rulesErik Johnston2019-02-142-0/+74
| | | | | This allows specifying who and what is allowed to be published onto the public room list
* Fix error when loading cert if tls is disabled (#4618)Richard van der Hoff2019-02-121-1/+1
| | | | | | If TLS is disabled, it should not be an error if no cert is given. Fixes #4554.
* fix testsRichard van der Hoff2019-02-111-2/+6
|
* Move ClientTLSOptionsFactory init out of refresh_certificates (#4611)Richard van der Hoff2019-02-111-3/+1
| | | | | It's nothing to do with refreshing the certificates. No idea why it was here.
* Merge pull request #4580 from matrix-org/uhoreg/e2e_backup_add_updatingErik Johnston2019-02-111-0/+72
|\ | | | | add updating of backup versions
| * make sure version is in body and wrap in linearizer queueHubert Chathi2019-02-081-0/+72
| | | | | | | | also add tests
* | Merge pull request #4420 from matrix-org/jaywink/openid-listenerErik Johnston2019-02-112-1/+120
|\ \ | |/ |/| New listener resource for the federation API "openid/userinfo" endpoint
| * Fix flake8 issuesJason Robinson2019-01-231-2/+8
| | | | | | | | Signed-off-by: Jason Robinson <jasonr@matrix.org>
| * Fix openid tests after rebaseJason Robinson2019-01-231-2/+2
| | | | | | | | Signed-off-by: Jason Robinson <jasonr@matrix.org>
| * Fix sorting of imports in tests. Remove an unnecessary mockJason Robinson2019-01-231-2/+2
| | | | | | | | Signed-off-by: Jason Robinson <jasonr@matrix.org>
| * Add tests for the openid lister for SynapseHomeServerJason Robinson2019-01-231-1/+48
| | | | | | | | | | | | | | Check all possible variants of openid and federation listener on/off possibilities. Signed-off-by: Jason Robinson <jasonr@matrix.org>
| * Add tests for the openid lister for FederationReaderServerJason Robinson2019-01-231-0/+66
| | | | | | | | | | | | | | Check all possible variants of openid and federation listener on/off possibilities. Signed-off-by: Jason Robinson <jasonr@matrix.org>
| * Fix a test docstring in frontend proxy testsJason Robinson2019-01-231-1/+1
| | | | | | | | Signed-off-by: Jason Robinson <jasonr@matrix.org>
* | Treat an invalid .well-known the same as an absent oneRichard van der Hoff2019-02-011-11/+70
| | | | | | | | ... basically, carry on and fall back to SRV etc.
* | Update federation routing logic to check .well-known before SRVRichard van der Hoff2019-01-311-30/+21
| |
* | Merge pull request #4472 from matrix-org/neilj/room_capabilitiesErik Johnston2019-01-301-0/+78
|\ \ | | | | | | Server capabilities support
| * \ Merge branch 'develop' into neilj/room_capabilitiesNeil Johnson2019-01-3020-120/+766
| |\ \
| * | | rework format of change password capabilityNeil Johnson2019-01-291-2/+2
| | | |
| * | | support change_password in capabilities end-pointNeil Johnson2019-01-291-0/+23
| | | |
| * | | isortNeil Johnson2019-01-291-1/+2
| | | |
| * | | enforce auth for capabilities endpointNeil Johnson2019-01-291-4/+19
| | | |
| * | | Support room version capabilities in CS API (MSC1804)Neil Johnson2019-01-251-0/+39
| | | |
* | | | Follow redirects on .well-known (#4520)Richard van der Hoff2019-01-301-0/+97
| | | |
* | | | Add a caching layer to .well-known responses (#4516)Richard van der Hoff2019-01-303-8/+243
| | | |
* | | | Fix flake8 (#4519)Amber Brown2019-01-304-10/+1
| |/ / |/| |
* | | Relax requirement for a content-type on .well-known (#4511)Richard van der Hoff2019-01-291-1/+0
| | |
* | | Do not generate self-signed TLS certificates by default. (#4509)Amber Brown2019-01-292-2/+75
| | |
* | | Merge pull request #4481 from matrix-org/erikj/event_builderErik Johnston2019-01-292-31/+27
|\ \ \ | | | | | | | | Refactor event building into EventBuilder
| * | | Fix test to use valid event formatErik Johnston2019-01-291-1/+1
| | | |
| * | | Make add_hashes_and_signatures operate on dictsErik Johnston2019-01-291-30/+26
| | | |
* | | | Implement MSC1708 (.well-known lookups for server routing) (#4489)Richard van der Hoff2019-01-294-9/+350
| | | |
* | | | Enable configuring test log level via env var (#4506)Richard van der Hoff2019-01-293-30/+79
|/ / / | | | | | | | | | I got fed up with always adding '@unittest.DEBUG' every time I needed to debug a test.
* | | Use SimpleResolverComplexifier in tests (#4497)Richard van der Hoff2019-01-292-32/+16
| | | | | | | | | | | | | | | two reasons for this. One, it saves a bunch of boilerplate. Two, it squashes unicode to IDNA-in-a-`str` (even on python 3) in a way that it turns out we rely on to give consistent behaviour between python 2 and 3.
* | | Merge pull request #4482 from matrix-org/erikj/event_auth_room_versionErik Johnston2019-01-282-3/+14
|\ \ \ | | | | | | | | Pass through room version to event auth
| * | | Pass through room version to event authErik Johnston2019-01-252-3/+14
| | | |
* | | | Fix UPSERTs on SQLite 3.24+ (#4477)Amber Brown2019-01-282-4/+7
| | | |
* | | | Handle IP literals explicitlyRichard van der Hoff2019-01-281-17/+2
| | | | | | | | | | | | | | | | We don't want to be doing .well-known lookups on these guys.
* | | | Fix idna and ipv6 literal handling in MatrixFederationAgent (#4487)Richard van der Hoff2019-01-281-1/+180
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turns out that the library does a better job of parsing URIs than our reinvented wheel. Who knew. There are two things going on here. The first is that, unlike parse_server_name, URI.fromBytes will strip off square brackets from IPv6 literals, which means that it is valid input to ClientTLSOptionsFactory and HostnameEndpoint. The second is that we stay in `bytes` throughout (except for the argument to ClientTLSOptionsFactory), which avoids the weirdness of (sometimes) ending up with idna-encoded values being held in `unicode` variables. TBH it probably would have been ok but it made the tests fragile.
* | | Merge pull request #4470 from matrix-org/erikj/require_format_versionErik Johnston2019-01-255-4/+14
|\ \ \ | | | | | | | | Require event format version to parse or create events
| * | | Fix testsErik Johnston2019-01-255-4/+14
| | | |
* | | | Fix Host header sent by MatrixFederationAgent (#4468)Richard van der Hoff2019-01-252-1/+17
|/ / / | | | | | | | | | | | | | | | Move the Host header logic down here so that (a) it is used if we reuse the agent elsewhere, and (b) we can mess about with it with .well-known.
* | | Revert "Require event format version to parse or create events"Erik Johnston2019-01-255-14/+4
| | |
* | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-245-14/+163
|\| | | | | | | | | | | erikj/require_format_version
| * | Look up the right SRV recordRichard van der Hoff2019-01-241-3/+9
| | |
| * | lots more tests for MatrixFederationAgentRichard van der Hoff2019-01-241-10/+79
| | |
| * | Merge pull request #4435 from matrix-org/neilj/fix_threepid_auth_checkNeil Johnson2019-01-241-1/+3
| |\ \ | | | | | | | | Neilj/fix threepid auth check
| | * | Fix None guard in config.server.is_threepid_reservedNeil Johnson2019-01-221-1/+3
| | |/
| * | Use native UPSERTs where possible (#4306)Amber Brown2019-01-243-5/+20
| | |
| * | Don't send IP addresses as SNI (#4452)Richard van der Hoff2019-01-241-3/+60
| | | | | | | | | | | | | | | | | | The problem here is that we have cut-and-pasted an impl from Twisted, and then failed to maintain it. It was fixed in Twisted in https://github.com/twisted/twisted/pull/1047/files; let's do the same here.
* | | Fix testsErik Johnston2019-01-245-4/+14
|/ /
* | fix python2 test failureRichard van der Hoff2019-01-231-1/+1
| |
* | Add a test for MatrixFederationAgentRichard van der Hoff2019-01-222-1/+195
| |
* | put resolve_service in an objectRichard van der Hoff2019-01-221-20/+18
| | | | | | | | this makes it easier to stub things out for tests.
* | Require that service_name be a byte stringRichard van der Hoff2019-01-221-4/+4
| | | | | | | | it is only ever a bytes now, so let's enforce that.
* | Make MatrixFederationClient use MatrixFederationAgentRichard van der Hoff2019-01-221-0/+96
|/ | | | ... instead of the matrix_federation_endpoint
* Refactor and bugfix for resove_service (#4427)Richard van der Hoff2019-01-222-14/+108
|
* Require ECDH key exchange & remove dh_params (#4429)Amber Brown2019-01-221-1/+0
| | | * remove dh_params and set better cipher string
* Remove redundant WrappedConnection (#4409)Richard van der Hoff2019-01-181-7/+47
| | | | | | | | * Remove redundant WrappedConnection The matrix federation client uses an HTTP connection pool, which times out its idle HTTP connections, so there is no need for any of this business.
* Fix incorrect logcontexts after a Deferred was cancelled (#4407)Richard van der Hoff2019-01-171-0/+104
|
* Merge remote-tracking branch 'origin/master' into developAmber Brown2019-01-111-154/+1
|\
| * Merge branch rav/macaroon_key_fix_0.34 into rav/macaroon_key_fix_0.34.1Richard van der Hoff2019-01-101-154/+1
| |\ | | | | | | | | | Fixes #4371
| | * Merge branch 'rav/macaroon_key_fix' into rav/macaroon_key_fix_0.34Richard van der Hoff2019-01-101-154/+1
| | |\
| | | * Skip macaroon check for access tokens in the dbRichard van der Hoff2019-01-101-148/+1
| | | |
* | | | Fix adding new rows instead of updating them if one of the key values is a ↵Amber Brown2019-01-091-0/+71
|/ / / | | | | | | | | | NULL in upserts. (#4369)
* | | Refactor request sending to have better excpetions (#4358)Erik Johnston2019-01-081-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Correctly retry and back off if we get a HTTPerror response * Refactor request sending to have better excpetions MatrixFederationHttpClient blindly reraised exceptions to the caller without differentiating "expected" failures (e.g. connection timeouts etc) versus more severe problems (e.g. programming errors). This commit adds a RequestSendFailed exception that is raised when "expected" failures happen, allowing the TransactionQueue to log them as warnings while allowing us to log other exceptions as actual exceptions.
* | | Remove v1 only REST APIs now we don't ship matrix console (#4334)Amber Brown2018-12-292-145/+44
| | |
* | | Return well_known in /login response (#4319)Richard van der Hoff2018-12-241-0/+3
| | | | | | | | | | | | ... as per MSC1730.
* | | Merge pull request #4317 from de-vri-es/test-metric-prometheus-0.5Richard van der Hoff2018-12-231-1/+23
|\ \ \ | | | | | | | | Fix test_metrics.py compatibility prometheus_client 0.5
| * | | Fix test_metrics.py compatibility prometheus_client 0.5Maarten de Vries2018-12-211-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prometheus_client 0.5 has a named-tuple Sample type with more member than the old plain tuple had. This commit makes sure the unit test detects this and changes the way it reads the sample. Signed-off-by: Maarten de Vries <maarten@de-vri.es>
* | | | Fix IP URL previews on Python 3 (#4215)Amber Brown2018-12-222-98/+334
|/ / /
* | | create support user (#4141)Neil Johnson2018-12-148-10/+204
| | | | | | | | | | | | | | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits.
* | | Initialise user displayname from SAML2 data (#4272)Richard van der Hoff2018-12-071-1/+1
| | | | | | | | | | | | | | | When we register a new user from SAML2 data, initialise their displayname correctly.
* | | Implement SAML2 authentication (#4267)Richard van der Hoff2018-12-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements both a SAML2 metadata endpoint (at `/_matrix/saml2/metadata.xml`), and a SAML2 response receiver (at `/_matrix/saml2/authn_response`). If the SAML2 response matches what's been configured, we complete the SSO login flow by redirecting to the client url (aka `RelayState` in SAML2 jargon) with a login token. What we don't yet have is anything to build a SAML2 request and redirect the user to the identity provider. That is left as an exercise for the reader.
* | | Factor SSO success handling out of CAS login (#4264)Richard van der Hoff2018-12-071-1/+30
| | | | | | | | | | | | This is mostly factoring out the post-CAS-login code to somewhere we can reuse it for other SSO flows, but it also fixes the userid mapping while we're at it.
* | | Rip out half-implemented m.login.saml2 support (#4265)Richard van der Hoff2018-12-061-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rip out half-implemented m.login.saml2 support This was implemented in an odd way that left most of the work to the client, in a way that I really didn't understand. It's going to be a pain to maintain, so let's start by ripping it out. * drop undocumented dependency on dateutil It turns out we were relying on dateutil being pulled in transitively by pysaml2. There's no need for that bloat.
* | | Implement .well-known handling (#4262)Richard van der Hoff2018-12-051-0/+58
|/ / | | | | | | Sometimes it's useful for synapse to generate its own .well-known file.