mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
RDAP: Show registrar entity even if contacts are redacted
Even when the request is not permissioned to see contact information, we should show information about the owning registrar. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=187049833
This commit is contained in:
parent
6a994f320f
commit
247339cfd5
6 changed files with 412 additions and 31 deletions
|
@ -522,10 +522,13 @@ public class RdapJsonFormatter {
|
|||
Map<Key<HostResource>, HostResource> loadedHosts =
|
||||
ofy().load().keys(domainResource.getNameservers());
|
||||
// Load the registrant and other contacts and add them to the data.
|
||||
if (displayContacts) {
|
||||
ImmutableList<ImmutableMap<String, Object>> entities;
|
||||
if (!displayContacts) {
|
||||
entities = ImmutableList.of();
|
||||
} else {
|
||||
Map<Key<ContactResource>, ContactResource> loadedContacts =
|
||||
ofy().load().keys(domainResource.getReferencedContacts());
|
||||
ImmutableList<ImmutableMap<String, Object>> entities =
|
||||
entities =
|
||||
Streams.concat(
|
||||
domainResource.getContacts().stream(),
|
||||
Stream.of(
|
||||
|
@ -543,6 +546,7 @@ public class RdapJsonFormatter {
|
|||
outputDataType,
|
||||
authorization))
|
||||
.collect(toImmutableList());
|
||||
}
|
||||
entities =
|
||||
addRegistrarEntity(
|
||||
entities,
|
||||
|
@ -554,7 +558,6 @@ public class RdapJsonFormatter {
|
|||
if (!entities.isEmpty()) {
|
||||
jsonBuilder.put("entities", entities);
|
||||
}
|
||||
}
|
||||
// Add the nameservers to the data; the load was kicked off above for efficiency.
|
||||
ImmutableList.Builder<Object> nsBuilder = new ImmutableList.Builder<>();
|
||||
for (HostResource hostResource
|
||||
|
|
|
@ -1022,7 +1022,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"21-EXAMPLE",
|
||||
null,
|
||||
ImmutableList.of("ns1.cat.lol", "ns2.external.tld"),
|
||||
"Yes Virginia <script>",
|
||||
"St. John Chrysostom",
|
||||
"rdap_domain_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_DOMAIN_NAME, Optional.of(1L));
|
||||
}
|
||||
|
@ -1037,7 +1037,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"2D-Q9JYB4C",
|
||||
null,
|
||||
ImmutableList.of("ns1.cat.xn--q9jyb4c", "ns2.cat.xn--q9jyb4c"),
|
||||
"Yes Virginia <script>",
|
||||
"みんな",
|
||||
"rdap_domain_unicode_no_contacts_with_remark.json");
|
||||
// The unicode gets translated to ASCII before getting parsed into a search pattern.
|
||||
metricPrefixLength = 15;
|
||||
|
@ -1054,7 +1054,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"2D-Q9JYB4C",
|
||||
null,
|
||||
ImmutableList.of("ns1.cat.xn--q9jyb4c", "ns2.cat.xn--q9jyb4c"),
|
||||
"Yes Virginia <script>",
|
||||
"みんな",
|
||||
"rdap_domain_unicode_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_DOMAIN_NAME, Optional.of(1L));
|
||||
}
|
||||
|
@ -1069,7 +1069,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"39-1_TEST",
|
||||
ImmutableList.of("4-ROID", "6-ROID", "2-ROID"),
|
||||
ImmutableList.of("ns1.cat.1.test", "ns2.cat.2.test"),
|
||||
"Yes Virginia <script>",
|
||||
"1.test",
|
||||
"rdap_domain_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_DOMAIN_NAME, Optional.of(1L));
|
||||
}
|
||||
|
@ -1084,7 +1084,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"39-1_TEST",
|
||||
ImmutableList.of("4-ROID", "6-ROID", "2-ROID"),
|
||||
ImmutableList.of("ns1.cat.1.test", "ns2.cat.2.test"),
|
||||
"Yes Virginia <script>",
|
||||
"1.test",
|
||||
"rdap_domain_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_DOMAIN_NAME, Optional.of(1L));
|
||||
}
|
||||
|
@ -1611,7 +1611,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"2D-Q9JYB4C",
|
||||
null,
|
||||
ImmutableList.of("ns1.cat.xn--q9jyb4c", "ns2.cat.xn--q9jyb4c"),
|
||||
"Yes Virginia <script>",
|
||||
"みんな",
|
||||
"rdap_domain_unicode_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_NAMESERVER_NAME, 1, 1);
|
||||
}
|
||||
|
@ -1626,7 +1626,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"39-1_TEST",
|
||||
ImmutableList.of("4-ROID", "6-ROID", "2-ROID"),
|
||||
ImmutableList.of("ns1.cat.1.test", "ns2.cat.2.test"),
|
||||
"Yes Virginia <script>",
|
||||
"1.test",
|
||||
"rdap_domain_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_NAMESERVER_NAME, 1, 1);
|
||||
}
|
||||
|
@ -1641,7 +1641,7 @@ public class RdapDomainSearchActionTest extends RdapSearchActionTestCase {
|
|||
"39-1_TEST",
|
||||
ImmutableList.of("4-ROID", "6-ROID", "2-ROID"),
|
||||
ImmutableList.of("ns1.cat.1.test", "ns2.cat.2.test"),
|
||||
"Yes Virginia <script>",
|
||||
"1.test",
|
||||
"rdap_domain_no_contacts_with_remark.json");
|
||||
verifyMetrics(SearchType.BY_NAMESERVER_NAME, 1, 1);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
{
|
||||
"objectClassName": "domain",
|
||||
"handle": "%HANDLE%",
|
||||
"ldhName": "%NAME%",
|
||||
"status": [
|
||||
"client delete prohibited",
|
||||
"client renew prohibited",
|
||||
"client transfer prohibited",
|
||||
"server update prohibited"
|
||||
],
|
||||
"handle": "%HANDLE%",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://example.com/rdap/domain/%NAME%",
|
||||
|
@ -101,6 +103,94 @@
|
|||
"objectClassName": "nameserver"
|
||||
}
|
||||
],
|
||||
"ldhName": "%NAME%",
|
||||
"objectClassName": "domain"
|
||||
"entities": [
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"handle" : "1",
|
||||
"status" : ["active"],
|
||||
"roles" : ["registrar"],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.com/rdap/entity/1",
|
||||
"rel" : "self",
|
||||
"href" : "https://example.com/rdap/entity/1",
|
||||
"type" : "application/rdap+json"
|
||||
}
|
||||
],
|
||||
"events" :
|
||||
[
|
||||
{
|
||||
"eventAction": "registration",
|
||||
"eventActor": "1",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"eventAction": "last update of RDAP database",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
}
|
||||
],
|
||||
"publicIds" :
|
||||
[
|
||||
{
|
||||
"type" : "IANA Registrar ID",
|
||||
"identifier" : "1"
|
||||
}
|
||||
],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "%REGISTRARNAME%"],
|
||||
["adr", {}, "text", [
|
||||
"",
|
||||
"",
|
||||
"123 Example Boulevard <script>",
|
||||
"Williamsburg <script>",
|
||||
"NY",
|
||||
"11211",
|
||||
"United States"]],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551212"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "contact-us@example.com"]
|
||||
]
|
||||
],
|
||||
"entities" :
|
||||
[
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["administrative"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "Jane Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551215"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551216"],
|
||||
["email", {}, "text", "janedoe@example.com"]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["technical"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "John Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551213"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "johndoe@example.com"]
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
{
|
||||
"objectClassName": "domain",
|
||||
"handle": "%HANDLE%",
|
||||
"ldhName": "%NAME%",
|
||||
"status": [
|
||||
"client delete prohibited",
|
||||
"client renew prohibited",
|
||||
"client transfer prohibited",
|
||||
"server update prohibited"
|
||||
],
|
||||
"handle": "%HANDLE%",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://example.com/rdap/domain/%NAME%",
|
||||
|
@ -101,8 +103,96 @@
|
|||
"objectClassName": "nameserver"
|
||||
}
|
||||
],
|
||||
"ldhName": "%NAME%",
|
||||
"objectClassName": "domain",
|
||||
"entities": [
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"handle" : "1",
|
||||
"status" : ["active"],
|
||||
"roles" : ["registrar"],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.com/rdap/entity/1",
|
||||
"rel" : "self",
|
||||
"href" : "https://example.com/rdap/entity/1",
|
||||
"type" : "application/rdap+json"
|
||||
}
|
||||
],
|
||||
"events" :
|
||||
[
|
||||
{
|
||||
"eventAction": "registration",
|
||||
"eventActor": "1",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"eventAction": "last update of RDAP database",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
}
|
||||
],
|
||||
"publicIds" :
|
||||
[
|
||||
{
|
||||
"type" : "IANA Registrar ID",
|
||||
"identifier" : "1"
|
||||
}
|
||||
],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "%REGISTRARNAME%"],
|
||||
["adr", {}, "text", [
|
||||
"",
|
||||
"",
|
||||
"123 Example Boulevard <script>",
|
||||
"Williamsburg <script>",
|
||||
"NY",
|
||||
"11211",
|
||||
"United States"]],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551212"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "contact-us@example.com"]
|
||||
]
|
||||
],
|
||||
"entities" :
|
||||
[
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["administrative"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "Jane Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551215"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551216"],
|
||||
["email", {}, "text", "janedoe@example.com"]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["technical"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "John Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551213"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "johndoe@example.com"]
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks": [
|
||||
{
|
||||
"title": "Contacts Hidden",
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
{
|
||||
"objectClassName": "domain",
|
||||
"handle": "%HANDLE%",
|
||||
"ldhName": "%PUNYCODENAME%",
|
||||
"unicodeName": "%NAME%",
|
||||
"status": [
|
||||
"client delete prohibited",
|
||||
"client renew prohibited",
|
||||
"client transfer prohibited",
|
||||
"server update prohibited"
|
||||
],
|
||||
"handle": "%HANDLE%",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://example.com/rdap/domain/%PUNYCODENAME%",
|
||||
|
@ -103,9 +106,96 @@
|
|||
"objectClassName": "nameserver"
|
||||
}
|
||||
],
|
||||
"ldhName": "%PUNYCODENAME%",
|
||||
"unicodeName": "%NAME%",
|
||||
"objectClassName": "domain",
|
||||
"entities": [
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"handle" : "1",
|
||||
"status" : ["active"],
|
||||
"roles" : ["registrar"],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "https://example.com/rdap/entity/1",
|
||||
"rel" : "self",
|
||||
"href" : "https://example.com/rdap/entity/1",
|
||||
"type" : "application/rdap+json"
|
||||
}
|
||||
],
|
||||
"events" :
|
||||
[
|
||||
{
|
||||
"eventAction": "registration",
|
||||
"eventActor": "1",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"eventAction": "last update of RDAP database",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
}
|
||||
],
|
||||
"publicIds" :
|
||||
[
|
||||
{
|
||||
"type" : "IANA Registrar ID",
|
||||
"identifier" : "1"
|
||||
}
|
||||
],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "%REGISTRARNAME%"],
|
||||
["adr", {}, "text", [
|
||||
"",
|
||||
"",
|
||||
"123 Example Boulevard <script>",
|
||||
"Williamsburg <script>",
|
||||
"NY",
|
||||
"11211",
|
||||
"United States"]],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551212"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "contact-us@example.com"]
|
||||
]
|
||||
],
|
||||
"entities" :
|
||||
[
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["administrative"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "Jane Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551215"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551216"],
|
||||
["email", {}, "text", "janedoe@example.com"]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["technical"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "John Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551213"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "johndoe@example.com"]
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks": [
|
||||
{
|
||||
"title": "Contacts Hidden",
|
||||
|
|
|
@ -103,6 +103,114 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"entities": [
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"handle" : "1",
|
||||
"status" : ["active"],
|
||||
"roles" : ["registrar"],
|
||||
"links" :
|
||||
[
|
||||
{
|
||||
"value" : "http://myserver.example.com/entity/1",
|
||||
"rel" : "self",
|
||||
"href" : "http://myserver.example.com/entity/1",
|
||||
"type" : "application/rdap+json"
|
||||
}
|
||||
],
|
||||
"events" :
|
||||
[
|
||||
{
|
||||
"eventAction": "registration",
|
||||
"eventActor": "1",
|
||||
"eventDate": "1999-01-01T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"eventAction": "last changed",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"eventAction": "last update of RDAP database",
|
||||
"eventDate": "2000-01-01T00:00:00.000Z"
|
||||
}
|
||||
],
|
||||
"publicIds" :
|
||||
[
|
||||
{
|
||||
"type" : "IANA Registrar ID",
|
||||
"identifier" : "1"
|
||||
}
|
||||
],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "みんな"],
|
||||
["adr", {}, "text", [
|
||||
"",
|
||||
"",
|
||||
"123 Example Boulevard <script>",
|
||||
"Williamsburg <script>",
|
||||
"NY",
|
||||
"11211",
|
||||
"United States"]],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551212"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "contact-us@example.com"]
|
||||
]
|
||||
],
|
||||
"entities" :
|
||||
[
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["administrative"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "Jane Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551215"],
|
||||
["email", {}, "text", "janedoe@example.com"]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["technical"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "John Doe"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551213"],
|
||||
["email", {}, "text", "johndoe@example.com"]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"objectClassName" : "entity",
|
||||
"status" : ["active"],
|
||||
"roles" : ["administrative", "technical"],
|
||||
"vcardArray" :
|
||||
[
|
||||
"vcard",
|
||||
[
|
||||
["version", {}, "text", "4.0"],
|
||||
["fn", {}, "text", "Play Doe"],
|
||||
["tel", {"type" : ["voice"]}, "uri", "tel:+1.2125551217"],
|
||||
["tel", {"type" : ["fax"]}, "uri", "tel:+1.2125551218"],
|
||||
["email", {}, "text", "playdoe@example.com"]
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"remarks": [
|
||||
{
|
||||
"title": "Contacts Hidden",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue