From b50f6a7f6eaa497e280d01296819936aeb2de569 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 10:56:35 +0100 Subject: [PATCH 01/10] Unstable MSC3882 endpoint should only be exposed under unstable version --- synapse/rest/client/login_token_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synapse/rest/client/login_token_request.py b/synapse/rest/client/login_token_request.py index ca5c54bf17a0..c4ee9a7e55b0 100644 --- a/synapse/rest/client/login_token_request.py +++ b/synapse/rest/client/login_token_request.py @@ -47,7 +47,7 @@ class LoginTokenRequestServlet(RestServlet): } """ - PATTERNS = client_patterns("/login/token$") + PATTERNS = client_patterns("/login/token$", releases=[], v1=False, unstable=True) def __init__(self, hs: "HomeServer"): super().__init__() From 839d8fc5ebdb5cb4be21267b21fe17b2808b4d5a Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 10:58:26 +0100 Subject: [PATCH 02/10] Add changelog --- changelog.d/13868.misc | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/13868.misc diff --git a/changelog.d/13868.misc b/changelog.d/13868.misc new file mode 100644 index 000000000000..d7a99c042a76 --- /dev/null +++ b/changelog.d/13868.misc @@ -0,0 +1 @@ +Fix unstable MSC3882 endpoint being incorrectly available on stable API versions. \ No newline at end of file From f689c38f0a901d245738f685f90048abffed2a56 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 11:18:25 +0100 Subject: [PATCH 03/10] Update unstable prefix --- synapse/rest/client/login_token_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synapse/rest/client/login_token_request.py b/synapse/rest/client/login_token_request.py index c4ee9a7e55b0..4a521bf5319a 100644 --- a/synapse/rest/client/login_token_request.py +++ b/synapse/rest/client/login_token_request.py @@ -47,7 +47,7 @@ class LoginTokenRequestServlet(RestServlet): } """ - PATTERNS = client_patterns("/login/token$", releases=[], v1=False, unstable=True) + PATTERNS = client_patterns("/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True) def __init__(self, hs: "HomeServer"): super().__init__() From 9392667f75ea9e3d8227d1ca443e57f486a60d38 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 11:24:12 +0100 Subject: [PATCH 04/10] Lint fix --- synapse/rest/client/login_token_request.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/synapse/rest/client/login_token_request.py b/synapse/rest/client/login_token_request.py index 4a521bf5319a..277b20fb638d 100644 --- a/synapse/rest/client/login_token_request.py +++ b/synapse/rest/client/login_token_request.py @@ -47,7 +47,9 @@ class LoginTokenRequestServlet(RestServlet): } """ - PATTERNS = client_patterns("/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True) + PATTERNS = client_patterns( + "/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True + ) def __init__(self, hs: "HomeServer"): super().__init__() From 6a75000a02498689d0296871e931ba1e4a3cd36c Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 10:56:35 +0100 Subject: [PATCH 05/10] Unstable MSC3882 endpoint should only be exposed under unstable version --- synapse/rest/client/login_token_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synapse/rest/client/login_token_request.py b/synapse/rest/client/login_token_request.py index ca5c54bf17a0..c4ee9a7e55b0 100644 --- a/synapse/rest/client/login_token_request.py +++ b/synapse/rest/client/login_token_request.py @@ -47,7 +47,7 @@ class LoginTokenRequestServlet(RestServlet): } """ - PATTERNS = client_patterns("/login/token$") + PATTERNS = client_patterns("/login/token$", releases=[], v1=False, unstable=True) def __init__(self, hs: "HomeServer"): super().__init__() From e00b2c40425bed1c913fa387e44e2ddb365ecab9 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 10:58:26 +0100 Subject: [PATCH 06/10] Add changelog --- changelog.d/13868.misc | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/13868.misc diff --git a/changelog.d/13868.misc b/changelog.d/13868.misc new file mode 100644 index 000000000000..d7a99c042a76 --- /dev/null +++ b/changelog.d/13868.misc @@ -0,0 +1 @@ +Fix unstable MSC3882 endpoint being incorrectly available on stable API versions. \ No newline at end of file From aecf6ae92b4b9bb5255d6ca37c67683197290c5a Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 11:18:25 +0100 Subject: [PATCH 07/10] Update unstable prefix --- synapse/rest/client/login_token_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synapse/rest/client/login_token_request.py b/synapse/rest/client/login_token_request.py index c4ee9a7e55b0..4a521bf5319a 100644 --- a/synapse/rest/client/login_token_request.py +++ b/synapse/rest/client/login_token_request.py @@ -47,7 +47,7 @@ class LoginTokenRequestServlet(RestServlet): } """ - PATTERNS = client_patterns("/login/token$", releases=[], v1=False, unstable=True) + PATTERNS = client_patterns("/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True) def __init__(self, hs: "HomeServer"): super().__init__() From 2cc487cd77cfc4575c903ac4404e450021c4b308 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 22 Sep 2022 11:24:12 +0100 Subject: [PATCH 08/10] Lint fix --- synapse/rest/client/login_token_request.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/synapse/rest/client/login_token_request.py b/synapse/rest/client/login_token_request.py index 4a521bf5319a..277b20fb638d 100644 --- a/synapse/rest/client/login_token_request.py +++ b/synapse/rest/client/login_token_request.py @@ -47,7 +47,9 @@ class LoginTokenRequestServlet(RestServlet): } """ - PATTERNS = client_patterns("/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True) + PATTERNS = client_patterns( + "/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True + ) def __init__(self, hs: "HomeServer"): super().__init__() From 3063dbe9378d4b1739ff22feca9a66d9555a0c29 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 29 Sep 2022 00:04:28 +0100 Subject: [PATCH 09/10] Update tests to use unstable prefix --- tests/rest/client/test_login_token_request.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/rest/client/test_login_token_request.py b/tests/rest/client/test_login_token_request.py index d5bb16c98daa..3ef59496a6af 100644 --- a/tests/rest/client/test_login_token_request.py +++ b/tests/rest/client/test_login_token_request.py @@ -22,6 +22,7 @@ from tests import unittest from tests.unittest import override_config +endpoint = "/_matrix/client/unstable/org.matrix.msc3882/login/token" class LoginTokenRequestServletTestCase(unittest.HomeserverTestCase): @@ -45,18 +46,18 @@ def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None: self.password = "password" def test_disabled(self) -> None: - channel = self.make_request("POST", "/login/token", {}, access_token=None) + channel = self.make_request("POST", endpoint, {}, access_token=None) self.assertEqual(channel.code, 400) self.register_user(self.user, self.password) token = self.login(self.user, self.password) - channel = self.make_request("POST", "/login/token", {}, access_token=token) + channel = self.make_request("POST", endpoint, {}, access_token=token) self.assertEqual(channel.code, 400) @override_config({"experimental_features": {"msc3882_enabled": True}}) def test_require_auth(self) -> None: - channel = self.make_request("POST", "/login/token", {}, access_token=None) + channel = self.make_request("POST", endpoint, {}, access_token=None) self.assertEqual(channel.code, 401) @override_config({"experimental_features": {"msc3882_enabled": True}}) @@ -64,7 +65,7 @@ def test_uia_on(self) -> None: user_id = self.register_user(self.user, self.password) token = self.login(self.user, self.password) - channel = self.make_request("POST", "/login/token", {}, access_token=token) + channel = self.make_request("POST", endpoint, {}, access_token=token) self.assertEqual(channel.code, 401) self.assertIn({"stages": ["m.login.password"]}, channel.json_body["flows"]) @@ -79,7 +80,7 @@ def test_uia_on(self) -> None: }, } - channel = self.make_request("POST", "/login/token", uia, access_token=token) + channel = self.make_request("POST", endpoint, uia, access_token=token) self.assertEqual(channel.code, 200) self.assertEqual(channel.json_body["expires_in"], 300) @@ -100,7 +101,7 @@ def test_uia_off(self) -> None: user_id = self.register_user(self.user, self.password) token = self.login(self.user, self.password) - channel = self.make_request("POST", "/login/token", {}, access_token=token) + channel = self.make_request("POST", endpoint, {}, access_token=token) self.assertEqual(channel.code, 200) self.assertEqual(channel.json_body["expires_in"], 300) @@ -127,6 +128,6 @@ def test_expires_in(self) -> None: self.register_user(self.user, self.password) token = self.login(self.user, self.password) - channel = self.make_request("POST", "/login/token", {}, access_token=token) + channel = self.make_request("POST", endpoint, {}, access_token=token) self.assertEqual(channel.code, 200) self.assertEqual(channel.json_body["expires_in"], 15) From 9987956f30ceff2fa7f67f44c79f63897db984ee Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 29 Sep 2022 10:19:39 +0100 Subject: [PATCH 10/10] Lint fix --- tests/rest/client/test_login_token_request.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/rest/client/test_login_token_request.py b/tests/rest/client/test_login_token_request.py index 3ef59496a6af..c2e1e08811d2 100644 --- a/tests/rest/client/test_login_token_request.py +++ b/tests/rest/client/test_login_token_request.py @@ -24,6 +24,7 @@ endpoint = "/_matrix/client/unstable/org.matrix.msc3882/login/token" + class LoginTokenRequestServletTestCase(unittest.HomeserverTestCase): servlets = [