From df7fec7a3e10167b8fb1962ad8eb085ac42a1677 Mon Sep 17 00:00:00 2001 From: Lai Jiang Date: Tue, 18 Feb 2025 12:00:26 -0500 Subject: [PATCH] Update RDAP TOS link (#2678) --- .../registry/rdap/RdapJsonFormatter.java | 8 ++++---- .../registry/request/RequestModule.java | 14 +++---------- ...ervletPath.java => RequestServerName.java} | 6 +++--- .../registry/rdap/RdapJsonFormatterTest.java | 20 ------------------- .../google/registry/rdap/RdapTestHelper.java | 2 +- 5 files changed, 11 insertions(+), 39 deletions(-) rename core/src/main/java/google/registry/request/{FullServletPath.java => RequestServerName.java} (87%) diff --git a/core/src/main/java/google/registry/rdap/RdapJsonFormatter.java b/core/src/main/java/google/registry/rdap/RdapJsonFormatter.java index 7b0426025..dc4496116 100644 --- a/core/src/main/java/google/registry/rdap/RdapJsonFormatter.java +++ b/core/src/main/java/google/registry/rdap/RdapJsonFormatter.java @@ -70,7 +70,7 @@ import google.registry.rdap.RdapObjectClasses.RdapRegistrarEntity; import google.registry.rdap.RdapObjectClasses.SecureDns; import google.registry.rdap.RdapObjectClasses.Vcard; import google.registry.rdap.RdapObjectClasses.VcardArray; -import google.registry.request.FullServletPath; +import google.registry.request.RequestServerName; import google.registry.util.Clock; import jakarta.persistence.Entity; import java.net.Inet4Address; @@ -114,7 +114,7 @@ public class RdapJsonFormatter { @Nullable String rdapTosStaticUrl; - @Inject @FullServletPath String fullServletPath; + @Inject @RequestServerName String serverName; @Inject RdapAuthorization rdapAuthorization; @Inject Clock clock; @@ -267,7 +267,7 @@ public class RdapJsonFormatter { .setDescription(rdapTos) .addLink(selfLink); if (rdapTosStaticUrl != null) { - URI htmlBaseURI = URI.create(fullServletPath); + URI htmlBaseURI = URI.create("https//:" + serverName + "/rdap/"); URI htmlUri = htmlBaseURI.resolve(rdapTosStaticUrl); noticeBuilder.addLink( Link.builder() @@ -1071,7 +1071,7 @@ public class RdapJsonFormatter { /** Create a link relative to the RDAP server endpoint. */ String makeRdapServletRelativeUrl(String part, String... moreParts) { - return makeServerRelativeUrl(fullServletPath, part, moreParts); + return makeServerRelativeUrl("https://" + serverName + "/rdap/", part, moreParts); } /** Create a link relative to some base server */ diff --git a/core/src/main/java/google/registry/request/RequestModule.java b/core/src/main/java/google/registry/request/RequestModule.java index 9611e4634..3e0105e74 100644 --- a/core/src/main/java/google/registry/request/RequestModule.java +++ b/core/src/main/java/google/registry/request/RequestModule.java @@ -151,17 +151,9 @@ public final class RequestModule { * query string. */ @Provides - @FullServletPath - static String provideFullServletPath(HttpServletRequest req) { - // Include the port only if it differs from the default for the scheme. - if (("http".equals(req.getScheme()) && (req.getServerPort() == 80)) - || ("https".equals(req.getScheme()) && (req.getServerPort() == 443))) { - return String.format("%s://%s%s", req.getScheme(), req.getServerName(), req.getServletPath()); - } else { - return String.format( - "%s://%s:%d%s", - req.getScheme(), req.getServerName(), req.getServerPort(), req.getServletPath()); - } + @RequestServerName + static String provideServerName(HttpServletRequest req) { + return req.getServerName(); } @Provides diff --git a/core/src/main/java/google/registry/request/FullServletPath.java b/core/src/main/java/google/registry/request/RequestServerName.java similarity index 87% rename from core/src/main/java/google/registry/request/FullServletPath.java rename to core/src/main/java/google/registry/request/RequestServerName.java index 20eb10da9..c1fd6d637 100644 --- a/core/src/main/java/google/registry/request/FullServletPath.java +++ b/core/src/main/java/google/registry/request/RequestServerName.java @@ -20,11 +20,11 @@ import java.lang.annotation.RetentionPolicy; import javax.inject.Qualifier; /** - * Dagger qualifier for the HTTP servlet path, prepended with scheme, host and port. + * Dagger qualifier for the server name of the HTTP request. * - *

See {@link jakarta.servlet.http.HttpServletRequest#getServletPath} + *

See {@link jakarta.servlet.http.HttpServletRequest#getServerName()} */ @Qualifier @Documented @Retention(RetentionPolicy.RUNTIME) -public @interface FullServletPath {} +public @interface RequestServerName {} diff --git a/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java b/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java index 545c6cda9..559bf215f 100644 --- a/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java +++ b/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java @@ -406,26 +406,6 @@ class RdapJsonFormatterTest { .isEqualTo(loadJson("rdapjson_registrant_logged_out.json")); } - @Test - void testRegistrant_baseHasNoTrailingSlash() { - // First, make sure we have a trailing slash at the end by default! - // This test tries to change the default state, if the default doesn't have a /, then this test - // doesn't help. - assertThat(rdapJsonFormatter.fullServletPath).endsWith("/"); - rdapJsonFormatter.fullServletPath = - rdapJsonFormatter.fullServletPath.substring( - 0, rdapJsonFormatter.fullServletPath.length() - 1); - assertAboutJson() - .that( - rdapJsonFormatter - .createRdapContactEntity( - contactRegistrant, - ImmutableSet.of(RdapEntity.Role.REGISTRANT), - OutputDataType.FULL) - .toJson()) - .isEqualTo(loadJson("rdapjson_registrant.json")); - } - @Test void testAdmin() { assertAboutJson() diff --git a/core/src/test/java/google/registry/rdap/RdapTestHelper.java b/core/src/test/java/google/registry/rdap/RdapTestHelper.java index 33a489650..5bc323b8e 100644 --- a/core/src/test/java/google/registry/rdap/RdapTestHelper.java +++ b/core/src/test/java/google/registry/rdap/RdapTestHelper.java @@ -150,7 +150,7 @@ class RdapTestHelper { static RdapJsonFormatter getTestRdapJsonFormatter(Clock clock) { RdapJsonFormatter rdapJsonFormatter = new RdapJsonFormatter(); rdapJsonFormatter.rdapAuthorization = RdapAuthorization.PUBLIC_AUTHORIZATION; - rdapJsonFormatter.fullServletPath = "https://example.tld/rdap/"; + rdapJsonFormatter.serverName = "example.tld"; rdapJsonFormatter.clock = clock; rdapJsonFormatter.rdapTos = ImmutableList.of(