From 9712875d971d95dabe0a475a521248d46473f627 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Wed, 14 May 2025 14:12:17 +0200 Subject: [PATCH] modify domain regex --- .../java/eu/siacs/conversations/xmpp/Jid.java | 2 +- .../eu/siacs/conversations/xmpp/JidTest.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 src/test/java/eu/siacs/conversations/xmpp/JidTest.java diff --git a/src/main/java/eu/siacs/conversations/xmpp/Jid.java b/src/main/java/eu/siacs/conversations/xmpp/Jid.java index a83c762872b18f9b6f9a17a2662016ecd64c4297..9faff3a0080cf601d971b397d86143723f593c15 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/Jid.java +++ b/src/main/java/eu/siacs/conversations/xmpp/Jid.java @@ -15,7 +15,7 @@ public abstract class Jid implements Comparable, Serializable, CharSequence private static final Pattern HOSTNAME_PATTERN = Pattern.compile( - "^(?=.{1,253}$)(?=.{1,253}$)(?!-)(?!.*--)(?!.*-$)[A-Za-z0-9-]+(?:\\.[A-Za-z0-9-]+)*$"); + "^(?=.{1,253}$)(?!-)[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,61}[\\p{L}\\p{N}])?(?:\\.(?!-)[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,61}[\\p{L}\\p{N}])?)*\\.?$"); public static Jid of( final CharSequence local, final CharSequence domain, final CharSequence resource) { diff --git a/src/test/java/eu/siacs/conversations/xmpp/JidTest.java b/src/test/java/eu/siacs/conversations/xmpp/JidTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8b72a273d6ae85a60b79f2687d628a0ec1de0030 --- /dev/null +++ b/src/test/java/eu/siacs/conversations/xmpp/JidTest.java @@ -0,0 +1,16 @@ +package eu.siacs.conversations.xmpp; + +import org.junit.Test; + +public class JidTest { + + @Test + public void testDoubleDash() { + Jid.ofUserInput("user@a--z.com"); + } + + @Test + public void testUnicode() { + Jid.ofUserInput("test@գծոոոց.հայ"); + } +}