Check missing fields in event_from_pdu_json

Return a 400 rather than a 500 when somebody messes up their send_join
pull/4/merge
Richard van der Hoff 7 years ago
parent 3079f80d4a
commit bd91857028
  1. 7
      synapse/federation/federation_base.py

@ -18,6 +18,7 @@ from synapse.api.errors import SynapseError
from synapse.crypto.event_signing import check_event_content_hash from synapse.crypto.event_signing import check_event_content_hash
from synapse.events import FrozenEvent from synapse.events import FrozenEvent
from synapse.events.utils import prune_event from synapse.events.utils import prune_event
from synapse.http.servlet import assert_params_in_request
from synapse.util import unwrapFirstError, logcontext from synapse.util import unwrapFirstError, logcontext
from twisted.internet import defer from twisted.internet import defer
@ -181,7 +182,13 @@ def event_from_pdu_json(pdu_json, outlier=False):
Returns: Returns:
FrozenEvent FrozenEvent
Raises:
SynapseError: if the pdu is missing required fields
""" """
# we could probably enforce a bunch of other fields here (room_id, sender,
# origin, etc etc)
assert_params_in_request(pdu_json, ('event_id', 'type'))
event = FrozenEvent( event = FrozenEvent(
pdu_json pdu_json
) )

Loading…
Cancel
Save