Class RoomServerAclContent

  • All Implemented Interfaces:
    EventContent

    public class RoomServerAclContent
    extends Object
    implements EventContent
    An event to indicate which servers are permitted to participate in the room. Server ACLs may allow or deny groups of hosts. All servers participating in the room, including those that are denied, are expected to uphold the server ACL. Servers that do not uphold the ACLs MUST be added to the denied hosts list in order for the ACLs to remain effective.
    The allow and deny lists are lists of globs supporting ? and * as wildcards. When comparing against the server ACLs, the suspect server's port number must not be considered. Therefore evil.com, evil.com:8448, and evil.com:1234 would all match rules that apply to evil.com, for example.
    The ACLs are applied to servers when they make requests, and are applied in the following order:
    1. If there is no m.room.server_acl event in the room state, allow.
    2. If the server name is an IP address (v4 or v6) literal, and allow_ip_literals is present and false, deny.
    3. If the server name matches an entry in the deny list, deny.
    4. If the server name matches an entry in the allow list, allow.
    5. Otherwise, deny.
    • Field Detail

      • allowIpLiterals

        private Boolean allowIpLiterals
        True to allow server names that are IP address literals. False to deny. Defaults to true if missing or otherwise not a boolean.
        This is strongly recommended to be set to false as servers running with IP literal names are strongly discouraged in order to require legitimate homeservers to be backed by a valid registered domain name.
      • allow

        private List<String> allow
        The server names to allow in the room, excluding any port information. Wildcards may be used to cover a wider range of hosts, where * matches zero or more characters and ? matches exactly one character.
        This defaults to an empty list when not provided, effectively disallowing every server.
      • deny

        private List<String> deny
        The server names to disallow in the room, excluding any port information. Wildcards may be used to cover a wider range of hosts, where * matches zero or more characters and ? matches exactly one character.
        This defaults to an empty list when not provided.
    • Constructor Detail

      • RoomServerAclContent

        public RoomServerAclContent()
    • Method Detail

      • getAllowIpLiterals

        public Boolean getAllowIpLiterals()
      • setAllowIpLiterals

        public void setAllowIpLiterals​(Boolean allowIpLiterals)
      • setAllow

        public void setAllow​(List<String> allow)
      • setDeny

        public void setDeny​(List<String> deny)