mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
add org.matrix.login.jwt so that m.login.jwt can be deprecated (#7675)
This commit is contained in:
parent
8bbe87f42d
commit
6920e58136
1
changelog.d/7675.removal
Normal file
1
changelog.d/7675.removal
Normal file
@ -0,0 +1 @@
|
|||||||
|
Deprecate `m.login.jwt` login method in favour of `org.matrix.login.jwt`, as `m.login.jwt` is not part of the Matrix spec.
|
@ -81,7 +81,8 @@ class LoginRestServlet(RestServlet):
|
|||||||
CAS_TYPE = "m.login.cas"
|
CAS_TYPE = "m.login.cas"
|
||||||
SSO_TYPE = "m.login.sso"
|
SSO_TYPE = "m.login.sso"
|
||||||
TOKEN_TYPE = "m.login.token"
|
TOKEN_TYPE = "m.login.token"
|
||||||
JWT_TYPE = "m.login.jwt"
|
JWT_TYPE = "org.matrix.login.jwt"
|
||||||
|
JWT_TYPE_DEPRECATED = "m.login.jwt"
|
||||||
|
|
||||||
def __init__(self, hs):
|
def __init__(self, hs):
|
||||||
super(LoginRestServlet, self).__init__()
|
super(LoginRestServlet, self).__init__()
|
||||||
@ -116,6 +117,7 @@ class LoginRestServlet(RestServlet):
|
|||||||
flows = []
|
flows = []
|
||||||
if self.jwt_enabled:
|
if self.jwt_enabled:
|
||||||
flows.append({"type": LoginRestServlet.JWT_TYPE})
|
flows.append({"type": LoginRestServlet.JWT_TYPE})
|
||||||
|
flows.append({"type": LoginRestServlet.JWT_TYPE_DEPRECATED})
|
||||||
|
|
||||||
if self.cas_enabled:
|
if self.cas_enabled:
|
||||||
# we advertise CAS for backwards compat, though MSC1721 renamed it
|
# we advertise CAS for backwards compat, though MSC1721 renamed it
|
||||||
@ -149,6 +151,7 @@ class LoginRestServlet(RestServlet):
|
|||||||
try:
|
try:
|
||||||
if self.jwt_enabled and (
|
if self.jwt_enabled and (
|
||||||
login_submission["type"] == LoginRestServlet.JWT_TYPE
|
login_submission["type"] == LoginRestServlet.JWT_TYPE
|
||||||
|
or login_submission["type"] == LoginRestServlet.JWT_TYPE_DEPRECATED
|
||||||
):
|
):
|
||||||
result = await self.do_jwt_login(login_submission)
|
result = await self.do_jwt_login(login_submission)
|
||||||
elif login_submission["type"] == LoginRestServlet.TOKEN_TYPE:
|
elif login_submission["type"] == LoginRestServlet.TOKEN_TYPE:
|
||||||
|
@ -526,7 +526,9 @@ class JWTTestCase(unittest.HomeserverTestCase):
|
|||||||
return jwt.encode(token, secret, "HS256").decode("ascii")
|
return jwt.encode(token, secret, "HS256").decode("ascii")
|
||||||
|
|
||||||
def jwt_login(self, *args):
|
def jwt_login(self, *args):
|
||||||
params = json.dumps({"type": "m.login.jwt", "token": self.jwt_encode(*args)})
|
params = json.dumps(
|
||||||
|
{"type": "org.matrix.login.jwt", "token": self.jwt_encode(*args)}
|
||||||
|
)
|
||||||
request, channel = self.make_request(b"POST", LOGIN_URL, params)
|
request, channel = self.make_request(b"POST", LOGIN_URL, params)
|
||||||
self.render(request)
|
self.render(request)
|
||||||
return channel
|
return channel
|
||||||
@ -568,7 +570,7 @@ class JWTTestCase(unittest.HomeserverTestCase):
|
|||||||
self.assertEqual(channel.json_body["error"], "Invalid JWT")
|
self.assertEqual(channel.json_body["error"], "Invalid JWT")
|
||||||
|
|
||||||
def test_login_no_token(self):
|
def test_login_no_token(self):
|
||||||
params = json.dumps({"type": "m.login.jwt"})
|
params = json.dumps({"type": "org.matrix.login.jwt"})
|
||||||
request, channel = self.make_request(b"POST", LOGIN_URL, params)
|
request, channel = self.make_request(b"POST", LOGIN_URL, params)
|
||||||
self.render(request)
|
self.render(request)
|
||||||
self.assertEqual(channel.result["code"], b"401", channel.result)
|
self.assertEqual(channel.result["code"], b"401", channel.result)
|
||||||
@ -640,7 +642,9 @@ class JWTPubKeyTestCase(unittest.HomeserverTestCase):
|
|||||||
return jwt.encode(token, secret, "RS256").decode("ascii")
|
return jwt.encode(token, secret, "RS256").decode("ascii")
|
||||||
|
|
||||||
def jwt_login(self, *args):
|
def jwt_login(self, *args):
|
||||||
params = json.dumps({"type": "m.login.jwt", "token": self.jwt_encode(*args)})
|
params = json.dumps(
|
||||||
|
{"type": "org.matrix.login.jwt", "token": self.jwt_encode(*args)}
|
||||||
|
)
|
||||||
request, channel = self.make_request(b"POST", LOGIN_URL, params)
|
request, channel = self.make_request(b"POST", LOGIN_URL, params)
|
||||||
self.render(request)
|
self.render(request)
|
||||||
return channel
|
return channel
|
||||||
|
Loading…
Reference in New Issue
Block a user