mirror of
https://github.com/google/nomulus.git
synced 2025-08-06 01:35:17 +02:00
RDAP: Add boilerplate entries required by ICANN RDAP Profile
The ICANN RDAP Profile (dated 3 December 2015) requires certain boilerplate entries at the top level of the JSON object. Specifically: 1.4.4. The terms of service of the RDAP service MUST be specified in the notices object in the topmost JSON object of the response. The notices object MUST contain a links object [RFC7483]. The links object MUST contain an URL of the contracted party providing the RDAP service. 1.4.10. An RDAP response MUST contain a remarks member with a description containing the string “This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0”. 1.5.18. A domain name RDAP response MUST contain a remarks member with a title “EPP Status Codes”, a description containing the string “For more information on domain status codes, please visit https://icann.org/epp” and a links member with the https://icann.org/epp URL. 1.5.20. A domain name RDAP response MUST contain a remarks member with a title “Whois Inaccuracy Complaint Form”, a description containing the string “URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf” and a links member with the https://www.icann.org/wicf URL. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=116389950
This commit is contained in:
parent
363c812d10
commit
ab26b288c1
29 changed files with 804 additions and 90 deletions
|
@ -19,9 +19,12 @@ import static com.google.common.truth.Truth.assertThat;
|
|||
import static com.google.domain.registry.request.Action.Method.GET;
|
||||
import static com.google.domain.registry.request.Action.Method.HEAD;
|
||||
import static com.google.domain.registry.testing.DatastoreHelper.createTld;
|
||||
import static com.google.domain.registry.testing.TestDataHelper.loadFileWithSubstitutions;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.domain.registry.model.ofy.Ofy;
|
||||
import com.google.domain.registry.rdap.RdapJsonFormatter.BoilerplateType;
|
||||
import com.google.domain.registry.request.HttpException;
|
||||
import com.google.domain.registry.testing.AppEngineRule;
|
||||
import com.google.domain.registry.testing.FakeClock;
|
||||
import com.google.domain.registry.testing.FakeResponse;
|
||||
|
@ -68,14 +71,22 @@ public class RdapActionBaseTest {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ImmutableMap<String, Object> getJsonObjectForResource(String searchString) {
|
||||
if (searchString.equals("IllegalArgumentException")) {
|
||||
public ImmutableMap<String, Object> getJsonObjectForResource(
|
||||
String pathSearchString, boolean isHeadRequest, String linkBase) throws HttpException {
|
||||
if (pathSearchString.equals("IllegalArgumentException")) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
if (searchString.equals("RuntimeException")) {
|
||||
if (pathSearchString.equals("RuntimeException")) {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
return ImmutableMap.<String, Object>of("key", "value");
|
||||
ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
|
||||
builder.put("key", "value");
|
||||
RdapJsonFormatter.addTopLevelEntries(
|
||||
builder,
|
||||
BoilerplateType.OTHER,
|
||||
null,
|
||||
"http://myserver.google.com/");
|
||||
return builder.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,6 +103,7 @@ public class RdapActionBaseTest {
|
|||
private Object generateActualJson(String domainName) {
|
||||
action.requestPath = RdapTestAction.PATH + domainName;
|
||||
action.requestMethod = GET;
|
||||
action.rdapLinkBase = "http://myserver.google.com/";
|
||||
action.run();
|
||||
return JSONValue.parse(response.getPayload());
|
||||
}
|
||||
|
@ -99,6 +111,7 @@ public class RdapActionBaseTest {
|
|||
private String generateHeadPayload(String domainName) {
|
||||
action.requestPath = RdapTestAction.PATH + domainName;
|
||||
action.requestMethod = HEAD;
|
||||
action.rdapLinkBase = "http://myserver.google.com/";
|
||||
action.run();
|
||||
return response.getPayload();
|
||||
}
|
||||
|
@ -124,7 +137,7 @@ public class RdapActionBaseTest {
|
|||
@Test
|
||||
public void testValidName_works() throws Exception {
|
||||
assertThat(generateActualJson("no.thing")).isEqualTo(JSONValue.parse(
|
||||
"{\"rdapConformance\":[\"rdap_level_0\"], \"key\":\"value\"}"));
|
||||
loadFileWithSubstitutions(this.getClass(), "rdapjson_toplevel.json", null)));
|
||||
assertThat(response.getStatus()).isEqualTo(200);
|
||||
}
|
||||
|
||||
|
|
|
@ -164,6 +164,12 @@ public class RdapDomainActionTest {
|
|||
if (!map.containsKey("rdapConformance")) {
|
||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||
}
|
||||
if (!map.containsKey("notices")) {
|
||||
RdapTestHelper.addTermsOfServiceNotice(builder, "https://example.com/rdap/");
|
||||
}
|
||||
if (!map.containsKey("remarks")) {
|
||||
RdapTestHelper.addDomainBoilerplateRemarks(builder);
|
||||
}
|
||||
if (!map.containsKey("port43")) {
|
||||
builder.put("port43", "whois.example.com");
|
||||
}
|
||||
|
|
|
@ -210,6 +210,8 @@ public class RdapDomainSearchActionTest {
|
|||
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
||||
builder.put("domainSearchResults", ImmutableList.of(obj));
|
||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||
RdapTestHelper.addTermsOfServiceNotice(builder, "https://example.com/rdap/");
|
||||
RdapTestHelper.addDomainBoilerplateRemarks(builder);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -181,6 +181,12 @@ public class RdapEntityActionTest {
|
|||
if (!map.containsKey("port43")) {
|
||||
builder.put("port43", "whois.example.tld");
|
||||
}
|
||||
if (!map.containsKey("notices")) {
|
||||
RdapTestHelper.addTermsOfServiceNotice(builder, "https://example.com/rdap/");
|
||||
}
|
||||
if (!map.containsKey("remarks")) {
|
||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder);
|
||||
}
|
||||
obj = builder.build();
|
||||
}
|
||||
return obj;
|
||||
|
|
|
@ -166,6 +166,8 @@ public class RdapEntitySearchActionTest {
|
|||
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
||||
builder.put("entitySearchResults", ImmutableList.of(obj));
|
||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||
RdapTestHelper.addTermsOfServiceNotice(builder, "https://example.com/rdap/");
|
||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,8 @@ public class RdapHelpActionTest {
|
|||
|
||||
@Test
|
||||
public void testHelpActionTos_works() throws Exception {
|
||||
generateActualJson("/tos");
|
||||
assertThat(generateActualJson("/tos"))
|
||||
.isEqualTo(generateExpectedJson("", "rdap_help_tos.json"));
|
||||
assertThat(response.getStatus()).isEqualTo(200);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -187,32 +187,36 @@ public class RdapJsonFormatterTest {
|
|||
|
||||
@Test
|
||||
public void testRegistrar() throws Exception {
|
||||
assertThat(RdapJsonFormatter.makeRdapJsonForRegistrar(registrar, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_registrar.json"));
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForRegistrar(registrar, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_registrar.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHost_ipv4() throws Exception {
|
||||
assertThat(RdapJsonFormatter.makeRdapJsonForHost(hostResourceIpv4, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_ipv4.json"));
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForHost(hostResourceIpv4, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_ipv4.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHost_ipv6() throws Exception {
|
||||
assertThat(RdapJsonFormatter.makeRdapJsonForHost(hostResourceIpv6, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_ipv6.json"));
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForHost(hostResourceIpv6, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_ipv6.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHost_both() throws Exception {
|
||||
assertThat(RdapJsonFormatter.makeRdapJsonForHost(hostResourceBoth, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_both.json"));
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForHost(hostResourceBoth, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_both.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHost_noAddresses() throws Exception {
|
||||
assertThat(RdapJsonFormatter.makeRdapJsonForHost(
|
||||
hostResourceNoAddresses, LINK_BASE, WHOIS_SERVER))
|
||||
hostResourceNoAddresses, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_host_no_addresses.json"));
|
||||
}
|
||||
|
||||
|
@ -221,6 +225,7 @@ public class RdapJsonFormatterTest {
|
|||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForContact(
|
||||
contactResourceRegistrant,
|
||||
false,
|
||||
Optional.of(DesignatedContact.Type.REGISTRANT),
|
||||
LINK_BASE,
|
||||
WHOIS_SERVER))
|
||||
|
@ -232,6 +237,7 @@ public class RdapJsonFormatterTest {
|
|||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForContact(
|
||||
contactResourceRegistrant,
|
||||
false,
|
||||
Optional.of(DesignatedContact.Type.REGISTRANT),
|
||||
LINK_BASE_NO_TRAILING_SLASH,
|
||||
WHOIS_SERVER))
|
||||
|
@ -243,6 +249,7 @@ public class RdapJsonFormatterTest {
|
|||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForContact(
|
||||
contactResourceRegistrant,
|
||||
false,
|
||||
Optional.of(DesignatedContact.Type.REGISTRANT),
|
||||
null,
|
||||
WHOIS_SERVER))
|
||||
|
@ -254,6 +261,7 @@ public class RdapJsonFormatterTest {
|
|||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForContact(
|
||||
contactResourceAdmin,
|
||||
false,
|
||||
Optional.of(DesignatedContact.Type.ADMIN),
|
||||
LINK_BASE,
|
||||
WHOIS_SERVER))
|
||||
|
@ -265,6 +273,7 @@ public class RdapJsonFormatterTest {
|
|||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForContact(
|
||||
contactResourceTech,
|
||||
false,
|
||||
Optional.of(DesignatedContact.Type.TECH),
|
||||
LINK_BASE,
|
||||
WHOIS_SERVER))
|
||||
|
@ -274,7 +283,8 @@ public class RdapJsonFormatterTest {
|
|||
@Test
|
||||
public void testDomain_full() throws Exception {
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForDomain(domainResourceFull, LINK_BASE, WHOIS_SERVER))
|
||||
RdapJsonFormatter.makeRdapJsonForDomain(
|
||||
domainResourceFull, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_domain_full.json"));
|
||||
}
|
||||
|
||||
|
@ -282,7 +292,7 @@ public class RdapJsonFormatterTest {
|
|||
public void testDomain_noRegistrant() throws Exception {
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForDomain(
|
||||
domainResourceNoRegistrant, LINK_BASE, WHOIS_SERVER))
|
||||
domainResourceNoRegistrant, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_domain_no_registrant.json"));
|
||||
}
|
||||
|
||||
|
@ -290,7 +300,7 @@ public class RdapJsonFormatterTest {
|
|||
public void testDomain_noContacts() throws Exception {
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForDomain(
|
||||
domainResourceNoContacts, LINK_BASE, WHOIS_SERVER))
|
||||
domainResourceNoContacts, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_domain_no_contacts.json"));
|
||||
}
|
||||
|
||||
|
@ -298,7 +308,7 @@ public class RdapJsonFormatterTest {
|
|||
public void testDomain_noNameservers() throws Exception {
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeRdapJsonForDomain(
|
||||
domainResourceNoNameservers, LINK_BASE, WHOIS_SERVER))
|
||||
domainResourceNoNameservers, false, LINK_BASE, WHOIS_SERVER))
|
||||
.isEqualTo(loadJson("rdapjson_domain_no_nameservers.json"));
|
||||
}
|
||||
|
||||
|
@ -375,8 +385,49 @@ public class RdapJsonFormatterTest {
|
|||
|
||||
@Test
|
||||
public void testTopLevel() throws Exception {
|
||||
assertThat(
|
||||
RdapJsonFormatter.makeFinalRdapJson(ImmutableMap.<String, Object>of("key", "value")))
|
||||
.isEqualTo(loadJson("rdapjson_toplevel.json"));
|
||||
ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
|
||||
builder.put("key", "value");
|
||||
RdapJsonFormatter.addTopLevelEntries(
|
||||
builder,
|
||||
RdapJsonFormatter.BoilerplateType.OTHER,
|
||||
null,
|
||||
LINK_BASE);
|
||||
assertThat(builder.build()).isEqualTo(loadJson("rdapjson_toplevel.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTopLevel_withTermsOfService() throws Exception {
|
||||
ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
|
||||
builder.put("key", "value");
|
||||
RdapJsonFormatter.addTopLevelEntries(
|
||||
builder,
|
||||
RdapJsonFormatter.BoilerplateType.OTHER,
|
||||
ImmutableList.of(RdapHelpAction.getJsonHelpNotice("/tos", LINK_BASE)),
|
||||
LINK_BASE);
|
||||
assertThat(builder.build()).isEqualTo(loadJson("rdapjson_toplevel.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTopLevel_domain() throws Exception {
|
||||
ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
|
||||
builder.put("key", "value");
|
||||
RdapJsonFormatter.addTopLevelEntries(
|
||||
builder,
|
||||
RdapJsonFormatter.BoilerplateType.DOMAIN,
|
||||
null,
|
||||
LINK_BASE);
|
||||
assertThat(builder.build()).isEqualTo(loadJson("rdapjson_toplevel_domain.json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTopLevel_domainWithTermsOfService() throws Exception {
|
||||
ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
|
||||
builder.put("key", "value");
|
||||
RdapJsonFormatter.addTopLevelEntries(
|
||||
builder,
|
||||
RdapJsonFormatter.BoilerplateType.DOMAIN,
|
||||
ImmutableList.of(RdapHelpAction.getJsonHelpNotice("/tos", LINK_BASE)),
|
||||
LINK_BASE);
|
||||
assertThat(builder.build()).isEqualTo(loadJson("rdapjson_toplevel_domain.json"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -128,6 +128,12 @@ public class RdapNameserverActionTest {
|
|||
if (!map.containsKey("port43")) {
|
||||
builder.put("port43", "whois.example.tld");
|
||||
}
|
||||
if (!map.containsKey("notices")) {
|
||||
RdapTestHelper.addTermsOfServiceNotice(builder, "https://example.tld/rdap/");
|
||||
}
|
||||
if (!map.containsKey("remarks")) {
|
||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder);
|
||||
}
|
||||
obj = builder.build();
|
||||
}
|
||||
return obj;
|
||||
|
|
|
@ -177,6 +177,8 @@ public class RdapNameserverSearchActionTest {
|
|||
ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
|
||||
builder.put("nameserverSearchResults", ImmutableList.of(obj));
|
||||
builder.put("rdapConformance", ImmutableList.of("rdap_level_0"));
|
||||
RdapTestHelper.addTermsOfServiceNotice(builder, "https://example.tld/rdap/");
|
||||
RdapTestHelper.addNonDomainBoilerplateRemarks(builder);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
103
javatests/com/google/domain/registry/rdap/RdapTestHelper.java
Normal file
103
javatests/com/google/domain/registry/rdap/RdapTestHelper.java
Normal file
|
@ -0,0 +1,103 @@
|
|||
// Copyright 2016 Google Inc. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.domain.registry.rdap;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
public class RdapTestHelper {
|
||||
|
||||
static void addTermsOfServiceNotice(
|
||||
ImmutableMap.Builder<String, Object> builder, String linkBase) {
|
||||
builder.put("notices",
|
||||
ImmutableList.of(
|
||||
ImmutableMap.of(
|
||||
"title", "RDAP Terms of Service",
|
||||
"description", ImmutableList.of(
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms"
|
||||
+ " so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for"
|
||||
+ " query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the"
|
||||
+ " transmission of mass unsolicited, commercial advertising or"
|
||||
+ " solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated"
|
||||
+ " electronic processes that send queries or data to the systems of"
|
||||
+ " Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful"
|
||||
+ " purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information"
|
||||
+ " contained in the Domain Database in its entirety, or in any substantial"
|
||||
+ " portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the"
|
||||
+ " purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we"
|
||||
+ " suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."),
|
||||
"links", ImmutableList.of(
|
||||
ImmutableMap.of(
|
||||
"value", linkBase + "help/tos",
|
||||
"rel", "alternate",
|
||||
"href", "https://www.registry.google/about/rdap/tos.html",
|
||||
"type", "text/html")))));
|
||||
}
|
||||
|
||||
static void addNonDomainBoilerplateRemarks(ImmutableMap.Builder<String, Object> builder) {
|
||||
builder.put("remarks",
|
||||
ImmutableList.of(
|
||||
ImmutableMap.of(
|
||||
"description",
|
||||
ImmutableList.of(
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and"
|
||||
+ " Registrars version 1.0"))));
|
||||
}
|
||||
|
||||
static void addDomainBoilerplateRemarks(ImmutableMap.Builder<String, Object> builder) {
|
||||
builder.put("remarks",
|
||||
ImmutableList.of(
|
||||
ImmutableMap.of(
|
||||
"description",
|
||||
ImmutableList.of(
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and"
|
||||
+ " Registrars version 1.0")),
|
||||
ImmutableMap.of(
|
||||
"title",
|
||||
"EPP Status Codes",
|
||||
"description",
|
||||
ImmutableList.of(
|
||||
"For more information on domain status codes, please visit"
|
||||
+ " https://icann.org/epp"),
|
||||
"links",
|
||||
ImmutableList.of(
|
||||
ImmutableMap.of(
|
||||
"value", "https://icann.org/epp",
|
||||
"rel", "alternate",
|
||||
"href", "https://icann.org/epp",
|
||||
"type", "text/html"))),
|
||||
ImmutableMap.of(
|
||||
"description",
|
||||
ImmutableList.of(
|
||||
"URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf"),
|
||||
"links",
|
||||
ImmutableList.of(
|
||||
ImmutableMap.of(
|
||||
"value", "https://www.icann.org/wicf",
|
||||
"rel", "alternate",
|
||||
"href", "https://www.icann.org/wicf",
|
||||
"type", "text/html")))));
|
||||
}
|
||||
}
|
||||
|
|
@ -19,6 +19,40 @@
|
|||
"href" : "https://www.registry.google/about/rdap/index.html"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.tld/rdap/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
40
javatests/com/google/domain/registry/rdap/testdata/rdap_help_tos.json
vendored
Normal file
40
javatests/com/google/domain/registry/rdap/testdata/rdap_help_tos.json
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"rdapConformance" : ["rdap_level_0"],
|
||||
"notices" :
|
||||
[
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.tld/rdap/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -120,5 +120,42 @@
|
|||
"port43": "whois.example.tld"
|
||||
}
|
||||
],
|
||||
"rdapConformance": [ "rdap_level_0" ]
|
||||
"rdapConformance": [ "rdap_level_0" ],
|
||||
"notices" :
|
||||
[
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.com/rdap/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -621,5 +621,73 @@
|
|||
],
|
||||
"rdapConformance": [
|
||||
"rdap_level_0"
|
||||
],
|
||||
"notices" :
|
||||
[
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.com/rdap/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title" : "EPP Status Codes",
|
||||
"description" :
|
||||
[
|
||||
"For more information on domain status codes, please visit https://icann.org/epp"
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://icann.org/epp",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://icann.org/epp",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf"
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://www.icann.org/wicf",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.icann.org/wicf",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -43,5 +43,42 @@
|
|||
"port43": "whois.example.tld"
|
||||
}
|
||||
],
|
||||
"rdapConformance" : ["rdap_level_0"]
|
||||
"rdapConformance" : ["rdap_level_0"],
|
||||
"notices" :
|
||||
[
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.tld/rdap/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -3,5 +3,42 @@
|
|||
"rdapConformance" :
|
||||
[
|
||||
"rdap_level_0"
|
||||
],
|
||||
"notices" :
|
||||
[
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "http://myserver.google.com/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
75
javatests/com/google/domain/registry/rdap/testdata/rdapjson_toplevel_domain.json
vendored
Normal file
75
javatests/com/google/domain/registry/rdap/testdata/rdapjson_toplevel_domain.json
vendored
Normal file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"key" : "value",
|
||||
"rdapConformance" :
|
||||
[
|
||||
"rdap_level_0"
|
||||
],
|
||||
"notices" :
|
||||
[
|
||||
{
|
||||
"title" : "RDAP Terms of Service",
|
||||
"description" :
|
||||
[
|
||||
"By querying our Domain Database, you are agreeing to comply with these terms so please read them carefully.",
|
||||
"Any information provided is 'as is' without any guarantee of accuracy.",
|
||||
"Please do not misuse the Domain Database. It is intended solely for query-based access.",
|
||||
"Don't use the Domain Database to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations.",
|
||||
"Don't access our Domain Database through the use of high volume, automated electronic processes that send queries or data to the systems of Charleston Road Registry or any ICANN-accredited registrar.",
|
||||
"You may only use the information contained in the Domain Database for lawful purposes.",
|
||||
"Do not compile, repackage, disseminate, or otherwise use the information contained in the Domain Database in its entirety, or in any substantial portion, without our prior written permission.",
|
||||
"We may retain certain details about queries to our Domain Database for the purposes of detecting and preventing misuse.",
|
||||
"We reserve the right to restrict or deny your access to the database if we suspect that you have failed to comply with these terms.",
|
||||
"We reserve the right to modify this agreement at any time."
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "http://myserver.google.com/help/tos",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.registry.google/about/rdap/tos.html",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks" :
|
||||
[
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"This response conforms to the RDAP Operational Profile for gTLD Registries and Registrars version 1.0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title" : "EPP Status Codes",
|
||||
"description" :
|
||||
[
|
||||
"For more information on domain status codes, please visit https://icann.org/epp"
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://icann.org/epp",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://icann.org/epp",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description" :
|
||||
[
|
||||
"URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf"
|
||||
],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://www.icann.org/wicf",
|
||||
"rel" : "alternate",
|
||||
"href" : "https://www.icann.org/wicf",
|
||||
"type" : "text/html"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue