Return proper RDAP error messages when invalid IP addresses are specified

We were relying on Dagger to validate the IP address, but that resulted in 500 errors when the IP address was not valid, which is undesirable. Instead, accept the parameters as strings, then convert them to IP addresses and throw a proper error when conversion fails.

Also fixes an improperly specified test.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=173172516
This commit is contained in:
mountford 2017-10-23 14:40:05 -07:00 committed by jianglai
parent 52fd9d8c4e
commit 4267fa7e48
6 changed files with 39 additions and 38 deletions

View file

@ -18,7 +18,6 @@ import dagger.Module;
import dagger.Provides;
import google.registry.request.Parameter;
import google.registry.request.RequestParameters;
import java.net.InetAddress;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
@ -40,14 +39,14 @@ public final class RdapModule {
@Provides
@Parameter("nsIp")
static Optional<InetAddress> provideNsIp(HttpServletRequest req) {
return RequestParameters.extractOptionalInetAddressParameter(req, "nsIp");
static Optional<String> provideNsIp(HttpServletRequest req) {
return RequestParameters.extractOptionalParameter(req, "nsIp");
}
@Provides
@Parameter("ip")
static Optional<InetAddress> provideIp(HttpServletRequest req) {
return RequestParameters.extractOptionalInetAddressParameter(req, "ip");
static Optional<String> provideIp(HttpServletRequest req) {
return RequestParameters.extractOptionalParameter(req, "ip");
}
@Provides