diff options
author | jonmv <venstad@gmail.com> | 2022-04-09 14:55:21 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-04-09 14:55:21 +0200 |
commit | 52d13729ce5760203025bda4d5022dcdbef3afd2 (patch) | |
tree | 431cc07b031e12f3997e3bbef38b3f81fd9a0ac6 /vespajlib/src | |
parent | cb1eb57fa9707b1186f0aa10a0853780d7674742 (diff) |
Domain names may end with ., but hostnames may not
Diffstat (limited to 'vespajlib/src')
-rw-r--r-- | vespajlib/src/main/java/ai/vespa/http/DomainName.java | 8 | ||||
-rw-r--r-- | vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/vespajlib/src/main/java/ai/vespa/http/DomainName.java b/vespajlib/src/main/java/ai/vespa/http/DomainName.java index 737f6b6d863..86242a1af0c 100644 --- a/vespajlib/src/main/java/ai/vespa/http/DomainName.java +++ b/vespajlib/src/main/java/ai/vespa/http/DomainName.java @@ -16,16 +16,16 @@ import static ai.vespa.validation.Validation.requireMatch; public class DomainName extends PatternedStringWrapper<DomainName> { protected static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])"); - protected static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern); + protected static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern + "\\.?"); public static final DomainName localhost = DomainName.of("localhost"); - protected DomainName(String value) { - super(requireLength(value, "domain name length", 1, 255), domainNamePattern, "domain name"); + protected DomainName(String value, String description) { + super(requireLength(value, "domain name length", 1, 255), domainNamePattern, description); } public static DomainName of(String value) { - return new DomainName(value); + return new DomainName(value, "domain name"); } public static String requireLabel(String label) { diff --git a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java index aa19e8667f6..4575ab4e8c1 100644 --- a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java +++ b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java @@ -15,6 +15,7 @@ class DomainNameTest { DomainName.of("name-123.0.321-eman"); DomainName.of(("." + "a".repeat(63)).repeat(4).substring(1)); DomainName.of("123"); + DomainName.of("foo."); assertThrows(IllegalArgumentException.class, () -> DomainName.of("_")); assertThrows(IllegalArgumentException.class, () -> DomainName.of("-")); @@ -22,7 +23,6 @@ class DomainNameTest { assertThrows(IllegalArgumentException.class, () -> DomainName.of("-foo")); assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo-")); assertThrows(IllegalArgumentException.class, () -> DomainName.of(".foo")); - assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo.")); assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo..bar")); assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo.-.bar")); assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo/")); |