diff options
author | Jan Christian Grünhage <jan.christian@gruenhage.xyz> | 2022-04-19 17:23:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-19 16:23:53 +0100 |
commit | a1f87f57ff7b5971e0e3450ec7761cf8dc4e01d1 (patch) | |
tree | d007615f60a8399b9983993795c0e56435797baf /synapse/http/matrixfederationclient.py | |
parent | Fix a link in `README.rst` (#12495) (diff) | |
download | synapse-a1f87f57ff7b5971e0e3450ec7761cf8dc4e01d1.tar.xz |
Implement MSC3383: include destination in X-Matrix auth header (#11398)
Co-authored-by: Jan Christian Grünhage <jan.christian@gruenhage.xyz> Co-authored-by: Marcus Hoffmann <bubu@bubu1.eu>
Diffstat (limited to 'synapse/http/matrixfederationclient.py')
-rw-r--r-- | synapse/http/matrixfederationclient.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/synapse/http/matrixfederationclient.py b/synapse/http/matrixfederationclient.py index 5097b3ca57..e686445955 100644 --- a/synapse/http/matrixfederationclient.py +++ b/synapse/http/matrixfederationclient.py @@ -704,6 +704,9 @@ class MatrixFederationHttpClient: Returns: A list of headers to be added as "Authorization:" headers """ + if destination is None and destination_is is None: + raise ValueError("destination and destination_is cannot both be None!") + request: JsonDict = { "method": method.decode("ascii"), "uri": url_bytes.decode("ascii"), @@ -726,8 +729,13 @@ class MatrixFederationHttpClient: for key, sig in request["signatures"][self.server_name].items(): auth_headers.append( ( - 'X-Matrix origin=%s,key="%s",sig="%s"' - % (self.server_name, key, sig) + 'X-Matrix origin=%s,key="%s",sig="%s",destination="%s"' + % ( + self.server_name, + key, + sig, + request.get("destination") or request["destination_is"], + ) ).encode("ascii") ) return auth_headers |