Skip to content

Commit 2e68745

Browse files
committed
Don't allow underscores in TLD ROID suffixes
Per ICANN it's a disallowed character.
1 parent 0519e2f commit 2e68745

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

core/src/main/java/google/registry/model/tld/Tld.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,12 +1034,13 @@ public Builder setEapFeeSchedule(ImmutableSortedMap<DateTime, Money> eapFeeSched
10341034
return this;
10351035
}
10361036

1037-
public static final Pattern ROID_SUFFIX_PATTERN = Pattern.compile("^[A-Z\\d_]{1,8}$");
1037+
public static final Pattern ROID_SUFFIX_PATTERN = Pattern.compile("^[A-Z\\d]{1,8}$");
10381038

10391039
public Builder setRoidSuffix(String roidSuffix) {
10401040
checkArgument(
10411041
ROID_SUFFIX_PATTERN.matcher(roidSuffix).matches(),
1042-
"ROID suffix must be in format %s",
1042+
"ROID suffix %s must be in format %s",
1043+
roidSuffix,
10431044
ROID_SUFFIX_PATTERN.pattern());
10441045
getInstance().roidSuffix = roidSuffix;
10451046
return this;

core/src/test/java/google/registry/model/tld/TldTest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,8 @@ void testFailure_roidSuffixTooLong() {
751751
assertThrows(
752752
IllegalArgumentException.class,
753753
() -> Tld.get("tld").asBuilder().setRoidSuffix("123456789"));
754-
assertThat(e).hasMessageThat().isEqualTo("ROID suffix must be in format ^[A-Z\\d_]{1,8}$");
754+
assertThat(e).hasMessageThat()
755+
.isEqualTo("ROID suffix 123456789 must be in format ^[A-Z\\d]{1,8}$");
755756
}
756757

757758
@Test
@@ -766,6 +767,12 @@ void testFailure_roidSuffixContainsInvalidCharacters() {
766767
IllegalArgumentException.class, () -> Tld.get("tld").asBuilder().setRoidSuffix("ABC-DEF"));
767768
}
768769

770+
@Test
771+
void testFailure_roidSuffixContainsUnderscores() {
772+
assertThrows(
773+
IllegalArgumentException.class, () -> Tld.get("tld").asBuilder().setRoidSuffix("ABC_DEF"));
774+
}
775+
769776
@Test
770777
void testSuccess_setDefaultPromoTokens() {
771778
Tld registry = Tld.get("tld");

core/src/test/java/google/registry/testing/DatabaseHelper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,8 +420,7 @@ public static Tld createTld(String tld, TldState tldState) {
420420
public static Tld createTld(String tld, ImmutableSortedMap<DateTime, TldState> tldStates) {
421421
// Coerce the TLD string into a valid ROID suffix.
422422
String roidSuffix =
423-
Ascii.toUpperCase(tld.replaceFirst(ACE_PREFIX_REGEX, "").replace('.', '_'))
424-
.replace('-', '_');
423+
Ascii.toUpperCase(tld.replaceFirst(ACE_PREFIX_REGEX, "").replace(".", "")).replace("-", "");
425424
return createTld(
426425
tld, roidSuffix.length() > 8 ? roidSuffix.substring(0, 8) : roidSuffix, tldStates);
427426
}

0 commit comments

Comments
 (0)