mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-12-18 20:54:19 -05:00
Merge pull request #5638 from matrix-org/babolivier/invite-json
Use JSON when querying the IS's /store-invite endpoint
This commit is contained in:
commit
65434da75d
1
changelog.d/5638.bugfix
Normal file
1
changelog.d/5638.bugfix
Normal file
@ -0,0 +1 @@
|
|||||||
|
Fix requests to the `/store_invite` endpoint of identity servers being sent in the wrong format.
|
@ -29,7 +29,7 @@ from twisted.internet import defer
|
|||||||
import synapse.server
|
import synapse.server
|
||||||
import synapse.types
|
import synapse.types
|
||||||
from synapse.api.constants import EventTypes, Membership
|
from synapse.api.constants import EventTypes, Membership
|
||||||
from synapse.api.errors import AuthError, Codes, SynapseError
|
from synapse.api.errors import AuthError, Codes, HttpResponseException, SynapseError
|
||||||
from synapse.types import RoomID, UserID
|
from synapse.types import RoomID, UserID
|
||||||
from synapse.util.async_helpers import Linearizer
|
from synapse.util.async_helpers import Linearizer
|
||||||
from synapse.util.distributor import user_joined_room, user_left_room
|
from synapse.util.distributor import user_joined_room, user_left_room
|
||||||
@ -872,9 +872,23 @@ class RoomMemberHandler(object):
|
|||||||
"sender_avatar_url": inviter_avatar_url,
|
"sender_avatar_url": inviter_avatar_url,
|
||||||
}
|
}
|
||||||
|
|
||||||
data = yield self.simple_http_client.post_urlencoded_get_json(
|
try:
|
||||||
is_url, invite_config
|
data = yield self.simple_http_client.post_json_get_json(
|
||||||
)
|
is_url, invite_config
|
||||||
|
)
|
||||||
|
except HttpResponseException as e:
|
||||||
|
# Some identity servers may only support application/x-www-form-urlencoded
|
||||||
|
# types. This is especially true with old instances of Sydent, see
|
||||||
|
# https://github.com/matrix-org/sydent/pull/170
|
||||||
|
logger.info(
|
||||||
|
"Failed to POST %s with JSON, falling back to urlencoded form: %s",
|
||||||
|
is_url,
|
||||||
|
e,
|
||||||
|
)
|
||||||
|
data = yield self.simple_http_client.post_urlencoded_get_json(
|
||||||
|
is_url, invite_config
|
||||||
|
)
|
||||||
|
|
||||||
# TODO: Check for success
|
# TODO: Check for success
|
||||||
token = data["token"]
|
token = data["token"]
|
||||||
public_keys = data.get("public_keys", [])
|
public_keys = data.get("public_keys", [])
|
||||||
|
Loading…
Reference in New Issue
Block a user