2 files changed, 13 insertions, 1 deletions
diff --git a/synapse/config/federation.py b/synapse/config/federation.py
index 090ba047fa..cdd7a1ef05 100644
--- a/synapse/config/federation.py
+++ b/synapse/config/federation.py
@@ -44,6 +44,10 @@ class FederationConfig(Config):
"allow_profile_lookup_over_federation", True
)
+ self.allow_device_name_lookup_over_federation = config.get(
+ "allow_device_name_lookup_over_federation", True
+ )
+
def generate_config_section(self, config_dir_path, server_name, **kwargs):
return """\
## Federation ##
@@ -75,6 +79,12 @@ class FederationConfig(Config):
# on this homeserver. Defaults to 'true'.
#
#allow_profile_lookup_over_federation: false
+
+ # Uncomment to disable device display name lookup over federation. By default, the
+ # Federation API allows other homeservers to obtain device display names of any user
+ # on this homeserver. Defaults to 'true'.
+ #
+ #allow_device_name_lookup_over_federation: false
"""
diff --git a/synapse/storage/databases/main/end_to_end_keys.py b/synapse/storage/databases/main/end_to_end_keys.py
index 88afe97c41..398d6b6acb 100644
--- a/synapse/storage/databases/main/end_to_end_keys.py
+++ b/synapse/storage/databases/main/end_to_end_keys.py
@@ -84,7 +84,9 @@ class EndToEndKeyWorkerStore(EndToEndKeyBackgroundStore):
if keys:
result["keys"] = keys
- device_display_name = device.display_name
+ device_display_name = None
+ if self.hs.config.allow_device_name_lookup_over_federation:
+ device_display_name = device.display_name
if device_display_name:
result["device_display_name"] = device_display_name
|