diff --git a/core/src/main/java/google/registry/ui/server/registrar/RegistryLockPostAction.java b/core/src/main/java/google/registry/ui/server/registrar/RegistryLockPostAction.java index a21e0e5d8..2d230d815 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/RegistryLockPostAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/RegistryLockPostAction.java @@ -30,6 +30,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.flogger.FluentLogger; import com.google.gson.Gson; import google.registry.config.RegistryConfig.Config; +import google.registry.flows.domain.DomainFlowUtils; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarContact; import google.registry.request.Action; @@ -118,6 +119,7 @@ public class RegistryLockPostAction implements Runnable, JsonActionRunner.JsonAc String registrarId = postInput.registrarId; checkArgument(!Strings.isNullOrEmpty(registrarId), "Missing key for registrarId"); checkArgument(!Strings.isNullOrEmpty(postInput.domainName), "Missing key for domainName"); + DomainFlowUtils.validateDomainName(postInput.domainName); checkNotNull(postInput.isLock, "Missing key for isLock"); UserAuthInfo userAuthInfo = authResult diff --git a/core/src/test/java/google/registry/ui/server/registrar/RegistryLockPostActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/RegistryLockPostActionTest.java index ee6b416c1..f2937b1d3 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/RegistryLockPostActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/RegistryLockPostActionTest.java @@ -280,6 +280,16 @@ public final class RegistryLockPostActionTest { assertFailureWithMessage(response, "Missing key for domainName"); } + @Test + public void testFailure_nonPunycodeDomainName() { + Map response = action.handleJsonRequest(ImmutableMap.of( + "isLock", true, + "registrarId", "TheRegistrar", + "domainName", "example.みんな", + "password", "hi")); + assertFailureWithMessage(response, "Domain names can only contain a-z, 0-9, '.' and '-'"); + } + @Test public void testFailure_noLockParam() { Map response =