summary refs log tree commit diff
path: root/synapse/rest
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2021-01-18 14:52:49 +0000
committerGitHub <noreply@github.com>2021-01-18 14:52:49 +0000
commit02070c69faa47bf6aef280939c2d5f32cbcb9f25 (patch)
tree9815f932175ae1ddfb3acb5b6d8f811f5848bbf0 /synapse/rest
parentFix the Python 3.5 old-deps build. (#9146) (diff)
downloadsynapse-02070c69faa47bf6aef280939c2d5f32cbcb9f25.tar.xz
Fix bugs in handling clientRedirectUrl, and improve OIDC tests (#9127, #9128)
* 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
Diffstat (limited to 'synapse/rest')
-rw-r--r--synapse/rest/synapse/client/pick_idp.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/synapse/rest/synapse/client/pick_idp.py b/synapse/rest/synapse/client/pick_idp.py
index e5b720bbca..9550b82998 100644
--- a/synapse/rest/synapse/client/pick_idp.py
+++ b/synapse/rest/synapse/client/pick_idp.py
@@ -45,7 +45,9 @@ class PickIdpResource(DirectServeHtmlResource):
         self._server_name = hs.hostname
 
     async def _async_render_GET(self, request: SynapseRequest) -> None:
-        client_redirect_url = parse_string(request, "redirectUrl", required=True)
+        client_redirect_url = parse_string(
+            request, "redirectUrl", required=True, encoding="utf-8"
+        )
         idp = parse_string(request, "idp", required=False)
 
         # if we need to pick an IdP, do so