- Jan 18, 2021
-
-
Erik Johnston authored
-
Richard van der Hoff authored
* Factor out a common TestHtmlParser Looks like I'm doing this in a few different places. * Improve OIDC login test Complete the OIDC login flow, rather than giving up halfway through. * Ensure that OIDC login works with multiple OIDC providers * Fix bugs in handling clientRedirectUrl - don't drop duplicate query-params, or params with no value - allow utf-8 in query-params
-
- Jan 15, 2021
-
-
Richard van der Hoff authored
0dd2649c (#9112) changed the signature of `auth_via_oidc`. Meanwhile, 26d10331 (#9091) introduced a new test which relied on the old signature of `auth_via_oidc`. The two branches were never tested together until they landed in develop.
-
Erik Johnston authored
We do this by allowing a single iteration to process multiple rooms at a time, as there are often a lot of really tiny rooms, which can massively slow things down.
-
Richard van der Hoff authored
This is the final step for supporting multiple OIDC providers concurrently. First of all, we reorganise the config so that you can specify a list of OIDC providers, instead of a single one. Before: oidc_config: enabled: true issuer: "https://oidc_provider" # etc After: oidc_providers: - idp_id: prov1 issuer: "https://oidc_provider" - idp_id: prov2 issuer: "https://another_oidc_provider" The old format is still grandfathered in. With that done, it's then simply a matter of having OidcHandler instantiate a new OidcProvider for each configured provider.
-
Patrick Cloke authored
Protecting media stops it from being quarantined when e.g. all media in a room is quarantined. This is useful for sticker packs and other media that is uploaded by server administrators, but used by many people.
-
Patrick Cloke authored
Previously this code generated unreferenced `Deferred` instances which caused "Unhandled Deferreds" errors to appear in error situations.
-
Richard van der Hoff authored
* make the OIDC bits of the test work at a higher level - via the REST api instead of poking the OIDCHandler directly. * Move it to test_login.py, where I think it fits better.
-
Richard van der Hoff authored
Again in preparation for handling more than one OIDC provider, add a new caveat to the macaroon used as an OIDC session cookie, which remembers which OIDC provider we are talking to. In future, when we get a callback, we'll need it to make sure we talk to the right IdP. As part of this, I'm adding an idp_id and idp_name field to the OIDC configuration object. They aren't yet documented, and we'll just use the old values by default.
-
- Jan 14, 2021
-
-
Erik Johnston authored
We passed in a graph to `sorted_topologically` which didn't have an entry for each node (as we dropped nodes with no edges).
-
Erik Johnston authored
-
Richard van der Hoff authored
The idea here is that we will have an instance of OidcProvider for each configured IdP, with OidcHandler just doing the marshalling of them. For now it's still hardcoded with a single provider.
-
- Jan 13, 2021
-
-
Richard van der Hoff authored
-
Richard van der Hoff authored
* Add complete test for UI-Auth-via-SSO. * review comments
-
Patrick Cloke authored
This checks that the domain given to `DomainSpecificString.is_valid` (e.g. `UserID`, `RoomAlias`, etc.) is of a valid form. Previously some validation was done on the localpart (e.g. the sigil), but not the domain portion.
-
Richard van der Hoff authored
Some light refactoring of OidcHandler, in preparation for bigger things: * remove inheritance from deprecated BaseHandler * add an object to hold the things that go into a session cookie * factor out a separate class for manipulating said cookies
-
- Jan 12, 2021
-
-
Dirk Klimpel authored
This only applies if the user's data is to be erased.
-
Marcus authored
It is expected that the proxy would be on a private IP address so the configured proxy should be connected to regardless of the IP range blacklist.
-
Patrick Cloke authored
-
Richard van der Hoff authored
SynapseRequest is in danger of becoming a bit of a dumping-ground for "useful stuff relating to Requests", which isn't really its intention (its purpose is to override render, finished and connectionLost to set up the LoggingContext and write the right entries to the request log). Putting utility functions inside SynapseRequest means that lots of our code ends up requiring a SynapseRequest when there is nothing synapse-specific about the Request at all, and any old twisted.web.iweb.IRequest will do. This increases code coupling and makes testing more difficult. In short: move get_user_agent out to a utility function.
-
- Jan 11, 2021
-
-
David Teller authored
For remote users, only the rooms which the server knows about are returned. Local users have all of their joined rooms returned.
-
Dirk Klimpel authored
-
Erik Johnston authored
-
- Jan 08, 2021
-
-
Richard van der Hoff authored
-
- Jan 07, 2021
-
-
Richard van der Hoff authored
-
Richard van der Hoff authored
-
Patrick Cloke authored
This allows for efficiently finding which users ignore a particular user. Co-authored-by:
Erik Johnston <erik@matrix.org>
-
Richard van der Hoff authored
black seems to want to reformat this, despite `black --check` being happy with it :/
-
Richard van der Hoff authored
If we are lacking an optional dependency, skip the tests that rely on it.
-
- Jan 06, 2021
-
-
Patrick Cloke authored
-
- Jan 05, 2021
-
-
Patrick Cloke authored
An experimental room version ("org.matrix.msc2176") contains the new redaction rules for testing.
-
- Jan 04, 2021
-
-
Richard van der Hoff authored
* Implement CasHandler.handle_redirect_request ... to make it match OidcHandler and SamlHandler * Clean up interface for OidcHandler.handle_redirect_request Make it accept `client_redirect_url=None`. * Clean up interface for `SamlHandler.handle_redirect_request` ... bring it into line with CAS and OIDC by making it take a Request parameter, move the magic for `client_redirect_url` for UIA into the handler, and fix the return type to be a `str` rather than a `bytes`. * Define a common protocol for SSO auth provider impls * Give SsoIdentityProvider an ID and register them * Combine the SSO Redirect servlets Now that the SsoHandler knows about the identity providers, we can combine the various *RedirectServlets into a single implementation which delegates to the right IdP. * changelog
-
Patrick Cloke authored
-
- Jan 03, 2021
-
-
Patrick Cloke authored
-
- Dec 30, 2020
-
-
Andrew Morgan authored
The `RoomDirectoryFederationTests` tests were not being run unless explicitly called as an `__init__.py` file was not present in `tests/federation/transport/`. Thus the folder was not a python module, and `trial` did not look inside for any test cases to run. This was found while working on #6739. This PR adds a `__init__.py` and also fixes the test in a couple ways: - Switch to subclassing `unittest.FederatingHomeserverTestCase` instead, which sets up federation endpoints for us. - Supply a `federation_auth_origin` to `make_request` in order to more act like the request is coming from another server, instead of just an unauthenicated client requesting a federation endpoint. I found that the second point makes no difference to the test passing, but felt like the right thing to do if we're testing over federation.
-
- Dec 29, 2020
-
-
Patrick Cloke authored
This table has been unused since Synapse v1.17.0.
-
- Dec 22, 2020
-
-
Patrick Cloke authored
Tests were broken due to an API changing. The code used in Synapse proper should be compatible with both versions already.
-
- Dec 18, 2020
-
-
Erik Johnston authored
This adds an admin API that allows a server admin to get power in a room if a local user has power in a room. Will also invite the user if they're not in the room and its a private room. Can specify another user (rather than the admin user) to be granted power. Co-authored-by:
Matthew Hodgson <matthew@matrix.org>
-
Erik Johnston authored
This had two effects 1) it'd give the wrong answer and b) would iterate *all* power levels in the auth chain of each event. The latter of which can be *very* expensive for certain types of IRC bridge rooms that have large numbers of power level changes.
-
Richard van der Hoff authored
The final part (for now) of my work to implement a username picker in synapse itself. The idea is that we allow `UsernameMappingProvider`s to return `localpart=None`, in which case, rather than redirecting the browser back to the client, we redirect to a username-picker resource, which allows the user to enter a username. We *then* complete the SSO flow (including doing the client permission checks). The static resources for the username picker itself (in https://github.com/matrix-org/synapse/tree/rav/username_picker/synapse/res/username_picker) are essentially lifted wholesale from https://github.com/matrix-org/matrix-synapse-saml-mozilla/tree/master/matrix_synapse_saml_mozilla/res. As the comment says, we might want to think about making them customisable, but that can be a follow-up. Fixes #8876.
-