mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-25 21:19:23 -05:00
Give a meaningful error message when a client tries to create a room with an invalid alias localpart. (#12779)
This commit is contained in:
parent
a167304c8b
commit
df4963548b
1
changelog.d/12779.bugfix
Normal file
1
changelog.d/12779.bugfix
Normal file
@ -0,0 +1 @@
|
|||||||
|
Give a meaningful error message when a client tries to create a room with an invalid alias localpart.
|
@ -71,6 +71,9 @@ class DirectoryHandler:
|
|||||||
if wchar in room_alias.localpart:
|
if wchar in room_alias.localpart:
|
||||||
raise SynapseError(400, "Invalid characters in room alias")
|
raise SynapseError(400, "Invalid characters in room alias")
|
||||||
|
|
||||||
|
if ":" in room_alias.localpart:
|
||||||
|
raise SynapseError(400, "Invalid character in room alias localpart: ':'.")
|
||||||
|
|
||||||
if not self.hs.is_mine(room_alias):
|
if not self.hs.is_mine(room_alias):
|
||||||
raise SynapseError(400, "Room alias must be local")
|
raise SynapseError(400, "Room alias must be local")
|
||||||
# TODO(erikj): Change this.
|
# TODO(erikj): Change this.
|
||||||
|
@ -751,6 +751,21 @@ class RoomCreationHandler:
|
|||||||
if wchar in config["room_alias_name"]:
|
if wchar in config["room_alias_name"]:
|
||||||
raise SynapseError(400, "Invalid characters in room alias")
|
raise SynapseError(400, "Invalid characters in room alias")
|
||||||
|
|
||||||
|
if ":" in config["room_alias_name"]:
|
||||||
|
# Prevent someone from trying to pass in a full alias here.
|
||||||
|
# Note that it's permissible for a room alias to have multiple
|
||||||
|
# hash symbols at the start (notably bridged over from IRC, too),
|
||||||
|
# but the first colon in the alias is defined to separate the local
|
||||||
|
# part from the server name.
|
||||||
|
# (remember server names can contain port numbers, also separated
|
||||||
|
# by a colon. But under no circumstances should the local part be
|
||||||
|
# allowed to contain a colon!)
|
||||||
|
raise SynapseError(
|
||||||
|
400,
|
||||||
|
"':' is not permitted in the room alias name. "
|
||||||
|
"Please note this expects a local part — 'wombat', not '#wombat:example.com'.",
|
||||||
|
)
|
||||||
|
|
||||||
room_alias = RoomAlias(config["room_alias_name"], self.hs.hostname)
|
room_alias = RoomAlias(config["room_alias_name"], self.hs.hostname)
|
||||||
mapping = await self.store.get_association_from_room_alias(room_alias)
|
mapping = await self.store.get_association_from_room_alias(room_alias)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user