Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit e5fdf16

Browse files
authored
Expose MSC3882 only be under an unstable endpoint. (#13868)
1 parent 5680169 commit e5fdf16

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

changelog.d/13868.misc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix unstable MSC3882 endpoint being incorrectly available on stable API versions.

synapse/rest/client/login_token_request.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ class LoginTokenRequestServlet(RestServlet):
4747
}
4848
"""
4949

50-
PATTERNS = client_patterns("/login/token$")
50+
PATTERNS = client_patterns(
51+
"/org.matrix.msc3882/login/token$", releases=[], v1=False, unstable=True
52+
)
5153

5254
def __init__(self, hs: "HomeServer"):
5355
super().__init__()

tests/rest/client/test_login_token_request.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
from tests import unittest
2323
from tests.unittest import override_config
2424

25+
endpoint = "/_matrix/client/unstable/org.matrix.msc3882/login/token"
26+
2527

2628
class LoginTokenRequestServletTestCase(unittest.HomeserverTestCase):
2729

@@ -45,26 +47,26 @@ def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
4547
self.password = "password"
4648

4749
def test_disabled(self) -> None:
48-
channel = self.make_request("POST", "/login/token", {}, access_token=None)
50+
channel = self.make_request("POST", endpoint, {}, access_token=None)
4951
self.assertEqual(channel.code, 400)
5052

5153
self.register_user(self.user, self.password)
5254
token = self.login(self.user, self.password)
5355

54-
channel = self.make_request("POST", "/login/token", {}, access_token=token)
56+
channel = self.make_request("POST", endpoint, {}, access_token=token)
5557
self.assertEqual(channel.code, 400)
5658

5759
@override_config({"experimental_features": {"msc3882_enabled": True}})
5860
def test_require_auth(self) -> None:
59-
channel = self.make_request("POST", "/login/token", {}, access_token=None)
61+
channel = self.make_request("POST", endpoint, {}, access_token=None)
6062
self.assertEqual(channel.code, 401)
6163

6264
@override_config({"experimental_features": {"msc3882_enabled": True}})
6365
def test_uia_on(self) -> None:
6466
user_id = self.register_user(self.user, self.password)
6567
token = self.login(self.user, self.password)
6668

67-
channel = self.make_request("POST", "/login/token", {}, access_token=token)
69+
channel = self.make_request("POST", endpoint, {}, access_token=token)
6870
self.assertEqual(channel.code, 401)
6971
self.assertIn({"stages": ["m.login.password"]}, channel.json_body["flows"])
7072

@@ -79,7 +81,7 @@ def test_uia_on(self) -> None:
7981
},
8082
}
8183

82-
channel = self.make_request("POST", "/login/token", uia, access_token=token)
84+
channel = self.make_request("POST", endpoint, uia, access_token=token)
8385
self.assertEqual(channel.code, 200)
8486
self.assertEqual(channel.json_body["expires_in"], 300)
8587

@@ -100,7 +102,7 @@ def test_uia_off(self) -> None:
100102
user_id = self.register_user(self.user, self.password)
101103
token = self.login(self.user, self.password)
102104

103-
channel = self.make_request("POST", "/login/token", {}, access_token=token)
105+
channel = self.make_request("POST", endpoint, {}, access_token=token)
104106
self.assertEqual(channel.code, 200)
105107
self.assertEqual(channel.json_body["expires_in"], 300)
106108

@@ -127,6 +129,6 @@ def test_expires_in(self) -> None:
127129
self.register_user(self.user, self.password)
128130
token = self.login(self.user, self.password)
129131

130-
channel = self.make_request("POST", "/login/token", {}, access_token=token)
132+
channel = self.make_request("POST", endpoint, {}, access_token=token)
131133
self.assertEqual(channel.code, 200)
132134
self.assertEqual(channel.json_body["expires_in"], 15)

0 commit comments

Comments
 (0)