Fix /refresh endpoint version (#14364)

This commit is contained in:
Tulir Asokan 2022-11-04 18:43:51 +02:00 committed by GitHub
parent e5d18956b9
commit a4b1f64562
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 9 deletions

1
changelog.d/14364.bugfix Normal file
View file

@ -0,0 +1 @@
Fix refresh token endpoint to be under /r0 and /v3 instead of /v1. Contributed by Tulir @ Beeper.

View file

@ -536,7 +536,7 @@ def _get_auth_flow_dict_for_idp(idp: SsoIdentityProvider) -> JsonDict:
class RefreshTokenServlet(RestServlet): class RefreshTokenServlet(RestServlet):
PATTERNS = (re.compile("^/_matrix/client/v1/refresh$"),) PATTERNS = client_patterns("/refresh$")
def __init__(self, hs: "HomeServer"): def __init__(self, hs: "HomeServer"):
self._auth_handler = hs.get_auth_handler() self._auth_handler = hs.get_auth_handler()

View file

@ -635,7 +635,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
""" """
return self.make_request( return self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": refresh_token}, {"refresh_token": refresh_token},
) )
@ -724,7 +724,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
refresh_response = self.make_request( refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": login_response.json_body["refresh_token"]}, {"refresh_token": login_response.json_body["refresh_token"]},
) )
self.assertEqual(refresh_response.code, HTTPStatus.OK, refresh_response.result) self.assertEqual(refresh_response.code, HTTPStatus.OK, refresh_response.result)
@ -765,7 +765,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
refresh_response = self.make_request( refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": login_response.json_body["refresh_token"]}, {"refresh_token": login_response.json_body["refresh_token"]},
) )
self.assertEqual(refresh_response.code, HTTPStatus.OK, refresh_response.result) self.assertEqual(refresh_response.code, HTTPStatus.OK, refresh_response.result)
@ -1002,7 +1002,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
# This first refresh should work properly # This first refresh should work properly
first_refresh_response = self.make_request( first_refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": login_response.json_body["refresh_token"]}, {"refresh_token": login_response.json_body["refresh_token"]},
) )
self.assertEqual( self.assertEqual(
@ -1012,7 +1012,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
# This one as well, since the token in the first one was never used # This one as well, since the token in the first one was never used
second_refresh_response = self.make_request( second_refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": login_response.json_body["refresh_token"]}, {"refresh_token": login_response.json_body["refresh_token"]},
) )
self.assertEqual( self.assertEqual(
@ -1022,7 +1022,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
# This one should not, since the token from the first refresh is not valid anymore # This one should not, since the token from the first refresh is not valid anymore
third_refresh_response = self.make_request( third_refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": first_refresh_response.json_body["refresh_token"]}, {"refresh_token": first_refresh_response.json_body["refresh_token"]},
) )
self.assertEqual( self.assertEqual(
@ -1056,7 +1056,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
# Now that the access token from the last valid refresh was used once, refreshing with the N-1 token should fail # Now that the access token from the last valid refresh was used once, refreshing with the N-1 token should fail
fourth_refresh_response = self.make_request( fourth_refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": login_response.json_body["refresh_token"]}, {"refresh_token": login_response.json_body["refresh_token"]},
) )
self.assertEqual( self.assertEqual(
@ -1068,7 +1068,7 @@ class RefreshAuthTests(unittest.HomeserverTestCase):
# But refreshing from the last valid refresh token still works # But refreshing from the last valid refresh token still works
fifth_refresh_response = self.make_request( fifth_refresh_response = self.make_request(
"POST", "POST",
"/_matrix/client/v1/refresh", "/_matrix/client/v3/refresh",
{"refresh_token": second_refresh_response.json_body["refresh_token"]}, {"refresh_token": second_refresh_response.json_body["refresh_token"]},
) )
self.assertEqual( self.assertEqual(