1
0

Merge pull request #5658 from matrix-org/babolivier/is-json

This commit is contained in:
Andrew Morgan
2020-02-17 16:50:01 +00:00
3 changed files with 6 additions and 5 deletions

1
changelog.d/5658.bugfix Normal file
View File

@@ -0,0 +1 @@
Fix 3PID bind requests being sent to identity servers as `application/x-form-www-urlencoded` data, which is deprecated.

View File

@@ -136,7 +136,7 @@ class IdentityHandler(BaseHandler):
id_server_host = id_server
try:
data = yield self.http_client.post_urlencoded_get_json(
data = yield self.http_client.post_json_get_json(
"https://%s%s" % (id_server_host, "/_matrix/identity/api/v1/3pid/bind"),
{"sid": creds["sid"], "client_secret": client_secret, "mxid": mxid},
)

View File

@@ -43,8 +43,8 @@ class ThreepidISRewrittenURLTestCase(unittest.HomeserverTestCase):
self.is_server_name: self.rewritten_is_url
}
mock_http_client = Mock(spec=["post_urlencoded_get_json"])
mock_http_client.post_urlencoded_get_json.return_value = defer.succeed(
mock_http_client = Mock(spec=["post_json_get_json"])
mock_http_client.post_json_get_json.return_value = defer.succeed(
{"address": self.address, "medium": "email"}
)
@@ -65,7 +65,7 @@ class ThreepidISRewrittenURLTestCase(unittest.HomeserverTestCase):
* the original, non-rewritten, server name is stored in the database
"""
handler = self.hs.get_handlers().identity_handler
post_urlenc_get_json = self.hs.get_simple_http_client().post_urlencoded_get_json
post_json_get_json = self.hs.get_simple_http_client().post_json_get_json
store = self.hs.get_datastore()
creds = {"sid": "123", "client_secret": "some_secret"}
@@ -84,7 +84,7 @@ class ThreepidISRewrittenURLTestCase(unittest.HomeserverTestCase):
self.assertEqual(data.get("address"), self.address)
# Check that the request was done against the rewritten server name.
post_urlenc_get_json.assert_called_once_with(
post_json_get_json.assert_called_once_with(
"https://%s/_matrix/identity/api/v1/3pid/bind" % self.rewritten_is_url,
{
"sid": creds["sid"],