mirror of https://github.com/shred/acme4j
CamelCase JSON keys
parent
2ab4038bd5
commit
8c26cf869d
|
@ -49,7 +49,7 @@ public class Account extends AcmeResource {
|
||||||
private static final long serialVersionUID = 7042863483428051319L;
|
private static final long serialVersionUID = 7042863483428051319L;
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(Account.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Account.class);
|
||||||
|
|
||||||
private static final String KEY_TOS_AGREED = "terms-of-service-agreed";
|
private static final String KEY_TOS_AGREED = "termsOfServiceAgreed";
|
||||||
private static final String KEY_ORDERS = "orders";
|
private static final String KEY_ORDERS = "orders";
|
||||||
private static final String KEY_CONTACT = "contact";
|
private static final String KEY_CONTACT = "contact";
|
||||||
private static final String KEY_STATUS = "status";
|
private static final String KEY_STATUS = "status";
|
||||||
|
|
|
@ -167,14 +167,14 @@ public class AccountBuilder {
|
||||||
claims.put("contact", contacts);
|
claims.put("contact", contacts);
|
||||||
}
|
}
|
||||||
if (termsOfServiceAgreed != null) {
|
if (termsOfServiceAgreed != null) {
|
||||||
claims.put("terms-of-service-agreed", termsOfServiceAgreed);
|
claims.put("termsOfServiceAgreed", termsOfServiceAgreed);
|
||||||
}
|
}
|
||||||
if (keyIdentifier != null) {
|
if (keyIdentifier != null) {
|
||||||
claims.put("external-account-binding", createExternalAccountBinding(
|
claims.put("externalAccountBinding", createExternalAccountBinding(
|
||||||
keyIdentifier, session.getKeyPair().getPublic(), macKey, resourceUrl));
|
keyIdentifier, session.getKeyPair().getPublic(), macKey, resourceUrl));
|
||||||
}
|
}
|
||||||
if (onlyExisting != null) {
|
if (onlyExisting != null) {
|
||||||
claims.put("only-return-existing", onlyExisting);
|
claims.put("onlyReturnExisting", onlyExisting);
|
||||||
}
|
}
|
||||||
|
|
||||||
int resp = conn.sendSignedRequest(resourceUrl, claims, session, true, HttpURLConnection.HTTP_OK, HttpURLConnection.HTTP_CREATED);
|
int resp = conn.sendSignedRequest(resourceUrl, claims, session, true, HttpURLConnection.HTTP_OK, HttpURLConnection.HTTP_CREATED);
|
||||||
|
@ -203,7 +203,7 @@ public class AccountBuilder {
|
||||||
* @param macKey
|
* @param macKey
|
||||||
* {@link SecretKey} to sign the key identifier with
|
* {@link SecretKey} to sign the key identifier with
|
||||||
* @param resource
|
* @param resource
|
||||||
* "new-account" resource URL
|
* "newAccount" resource URL
|
||||||
* @return Created JSON structure
|
* @return Created JSON structure
|
||||||
*/
|
*/
|
||||||
private Map<String, Object> createExternalAccountBinding(String kid,
|
private Map<String, Object> createExternalAccountBinding(String kid,
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class Metadata {
|
||||||
* available.
|
* available.
|
||||||
*/
|
*/
|
||||||
public URI getTermsOfService() {
|
public URI getTermsOfService() {
|
||||||
return meta.get("terms-of-service").asURI();
|
return meta.get("termsOfService").asURI();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,7 +60,7 @@ public class Metadata {
|
||||||
* itself for the purposes of CAA record validation. Empty if not available.
|
* itself for the purposes of CAA record validation. Empty if not available.
|
||||||
*/
|
*/
|
||||||
public Collection<String> getCaaIdentities() {
|
public Collection<String> getCaaIdentities() {
|
||||||
return meta.get("caa-identities").asArray().stream()
|
return meta.get("caaIdentities").asArray().stream()
|
||||||
.map(Value::asString)
|
.map(Value::asString)
|
||||||
.collect(toList());
|
.collect(toList());
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ public class Metadata {
|
||||||
* Returns whether an external account is required by this CA.
|
* Returns whether an external account is required by this CA.
|
||||||
*/
|
*/
|
||||||
public boolean isExternalAccountRequired() {
|
public boolean isExternalAccountRequired() {
|
||||||
return meta.get("external-account-required").orElse(false).asBoolean();
|
return meta.get("externalAccountRequired").orElse(false).asBoolean();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -201,7 +201,7 @@ public class Order extends AcmeResource {
|
||||||
this.expires = json.get("expires").asInstant();
|
this.expires = json.get("expires").asInstant();
|
||||||
this.notBefore = json.get("notBefore").asInstant();
|
this.notBefore = json.get("notBefore").asInstant();
|
||||||
this.notAfter = json.get("notAfter").asInstant();
|
this.notAfter = json.get("notAfter").asInstant();
|
||||||
this.finalizeUrl = json.get("finalizeURL").asURL();
|
this.finalizeUrl = json.get("finalize").asURL();
|
||||||
|
|
||||||
URL certUrl = json.get("certificate").asURL();
|
URL certUrl = json.get("certificate").asURL();
|
||||||
certificate = certUrl != null ? Certificate.bind(getSession(), certUrl) : null;
|
certificate = certUrl != null ? Certificate.bind(getSession(), certUrl) : null;
|
||||||
|
|
|
@ -103,7 +103,7 @@ public class Problem implements Serializable {
|
||||||
*/
|
*/
|
||||||
public List<Problem> getSubProblems() {
|
public List<Problem> getSubProblems() {
|
||||||
return unmodifiableList(
|
return unmodifiableList(
|
||||||
problemJson.get("sub-problems")
|
problemJson.get("subproblems")
|
||||||
.asArray().stream()
|
.asArray().stream()
|
||||||
.map(o -> o.asProblem(baseUrl))
|
.map(o -> o.asProblem(baseUrl))
|
||||||
.collect(toList())
|
.collect(toList())
|
||||||
|
|
|
@ -18,12 +18,12 @@ package org.shredzone.acme4j.connector;
|
||||||
*/
|
*/
|
||||||
public enum Resource {
|
public enum Resource {
|
||||||
|
|
||||||
NEW_NONCE("new-nonce"),
|
NEW_NONCE("newNonce"),
|
||||||
NEW_ACCOUNT("new-account"),
|
NEW_ACCOUNT("newAccount"),
|
||||||
NEW_ORDER("new-order"),
|
NEW_ORDER("newOrder"),
|
||||||
NEW_AUTHZ("new-authz"),
|
NEW_AUTHZ("newAuthz"),
|
||||||
REVOKE_CERT("revoke-cert"),
|
REVOKE_CERT("revokeCert"),
|
||||||
KEY_CHANGE("key-change");
|
KEY_CHANGE("keyChange");
|
||||||
|
|
||||||
private final String path;
|
private final String path;
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ public class AccountBuilderTest {
|
||||||
assertThat(enforceJwk, is(true));
|
assertThat(enforceJwk, is(true));
|
||||||
|
|
||||||
JSON binding = claims.toJSON()
|
JSON binding = claims.toJSON()
|
||||||
.get("external-account-binding")
|
.get("externalAccountBinding")
|
||||||
.required()
|
.required()
|
||||||
.asObject();
|
.asObject();
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ public class AccountTest {
|
||||||
@Override
|
@Override
|
||||||
public Collection<URL> getLinks(String relation) {
|
public Collection<URL> getLinks(String relation) {
|
||||||
switch(relation) {
|
switch(relation) {
|
||||||
case "terms-of-service": return Arrays.asList(agreementUrl);
|
case "termsOfService": return Arrays.asList(agreementUrl);
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,8 +109,8 @@ public class ChallengeTest {
|
||||||
assertThat(challenge.getValidated(), is(parseTimestamp("2015-12-12T17:19:36.336785823Z")));
|
assertThat(challenge.getValidated(), is(parseTimestamp("2015-12-12T17:19:36.336785823Z")));
|
||||||
assertThat(challenge.getJSON().get("type").asString(), is("generic-01"));
|
assertThat(challenge.getJSON().get("type").asString(), is("generic-01"));
|
||||||
assertThat(challenge.getJSON().get("url").asURL(), is(url("http://example.com/challenge/123")));
|
assertThat(challenge.getJSON().get("url").asURL(), is(url("http://example.com/challenge/123")));
|
||||||
assertThat(challenge.getJSON().get("not-present").asString(), is(nullValue()));
|
assertThat(challenge.getJSON().get("notPresent").asString(), is(nullValue()));
|
||||||
assertThat(challenge.getJSON().get("not-present-url").asURL(), is(nullValue()));
|
assertThat(challenge.getJSON().get("notPresentUrl").asURL(), is(nullValue()));
|
||||||
|
|
||||||
List<Problem> errors = challenge.getErrors();
|
List<Problem> errors = challenge.getErrors();
|
||||||
assertThat(errors, is(notNullValue()));
|
assertThat(errors, is(notNullValue()));
|
||||||
|
|
|
@ -28,12 +28,12 @@ public class ResourceTest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testPath() {
|
public void testPath() {
|
||||||
assertThat(Resource.NEW_NONCE.path(), is("new-nonce"));
|
assertThat(Resource.NEW_NONCE.path(), is("newNonce"));
|
||||||
assertThat(Resource.NEW_ACCOUNT.path(), is("new-account"));
|
assertThat(Resource.NEW_ACCOUNT.path(), is("newAccount"));
|
||||||
assertThat(Resource.NEW_ORDER.path(), is("new-order"));
|
assertThat(Resource.NEW_ORDER.path(), is("newOrder"));
|
||||||
assertThat(Resource.NEW_AUTHZ.path(), is("new-authz"));
|
assertThat(Resource.NEW_AUTHZ.path(), is("newAuthz"));
|
||||||
assertThat(Resource.REVOKE_CERT.path(), is("revoke-cert"));
|
assertThat(Resource.REVOKE_CERT.path(), is("revokeCert"));
|
||||||
assertThat(Resource.KEY_CHANGE.path(), is("key-change"));
|
assertThat(Resource.KEY_CHANGE.path(), is("keyChange"));
|
||||||
|
|
||||||
// fails if there are untested future Resource values
|
// fails if there are untested future Resource values
|
||||||
assertThat(Resource.values().length, is(6));
|
assertThat(Resource.values().length, is(6));
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
"new-nonce": "https://example.com/acme/new-nonce",
|
"newNonce": "https://example.com/acme/new-nonce",
|
||||||
"new-account": "https://example.com/acme/new-account",
|
"newAccount": "https://example.com/acme/new-account",
|
||||||
"new-order": "https://example.com/acme/new-order"
|
"newOrder": "https://example.com/acme/new-order"
|
||||||
"new-authz": "https://example.com/acme/new-authz",
|
"newAuthz": "https://example.com/acme/new-authz",
|
||||||
"meta": {
|
"meta": {
|
||||||
"terms-of-service": "https://example.com/acme/terms",
|
"termsOfService": "https://example.com/acme/terms",
|
||||||
"website": "https://www.example.com/",
|
"website": "https://www.example.com/",
|
||||||
"caa-identities": [
|
"caaIdentities": [
|
||||||
"example.com"
|
"example.com"
|
||||||
],
|
],
|
||||||
"external-account-required": true,
|
"externalAccountRequired": true,
|
||||||
"x-test-string": "foobar",
|
"xTestString": "foobar",
|
||||||
"x-test-uri": "https://www.example.org",
|
"xTestUri": "https://www.example.org",
|
||||||
"x-test-array": [
|
"xTestArray": [
|
||||||
"foo",
|
"foo",
|
||||||
"bar",
|
"bar",
|
||||||
"barfoo"
|
"barfoo"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"new-account": "https://example.com/acme/new-account",
|
"newAccount": "https://example.com/acme/new-account",
|
||||||
"new-authz": "https://example.com/acme/new-authz",
|
"newAuthz": "https://example.com/acme/new-authz",
|
||||||
"new-order": "https://example.com/acme/new-order"
|
"newOrder": "https://example.com/acme/new-order"
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,6 @@
|
||||||
"https://example.com/acme/authz/1234",
|
"https://example.com/acme/authz/1234",
|
||||||
"https://example.com/acme/authz/2345"
|
"https://example.com/acme/authz/2345"
|
||||||
],
|
],
|
||||||
"finalizeURL": "https://example.com/acme/acct/1/order/1/finalize",
|
"finalize": "https://example.com/acme/acct/1/order/1/finalize",
|
||||||
"certificate": "https://example.com/acme/cert/1234"
|
"certificate": "https://example.com/acme/cert/1234"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"terms-of-service-agreed": true,
|
"termsOfServiceAgreed": true,
|
||||||
"contact": [
|
"contact": [
|
||||||
"mailto:foo2@example.com",
|
"mailto:foo2@example.com",
|
||||||
"mailto:foo3@example.com"
|
"mailto:foo3@example.com"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"terms-of-service-agreed": true,
|
"termsOfServiceAgreed": true,
|
||||||
"contact": [
|
"contact": [
|
||||||
"mailto:foo@example.com"
|
"mailto:foo@example.com"
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
"only-return-existing": true
|
"onlyReturnExisting": true
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"terms-of-service-agreed": true,
|
"termsOfServiceAgreed": true,
|
||||||
"contact": [
|
"contact": [
|
||||||
"mailto:foo@example.com"
|
"mailto:foo@example.com"
|
||||||
]
|
]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"type": "urn:ietf:params:acme:error:malformed",
|
"type": "urn:ietf:params:acme:error:malformed",
|
||||||
"detail": "Some of the identifiers requested were rejected",
|
"detail": "Some of the identifiers requested were rejected",
|
||||||
"instance": "/documents/error.html",
|
"instance": "/documents/error.html",
|
||||||
"sub-problems": [
|
"subproblems": [
|
||||||
{
|
{
|
||||||
"type": "urn:ietf:params:acme:error:malformed",
|
"type": "urn:ietf:params:acme:error:malformed",
|
||||||
"detail": "Invalid underscore in DNS name \"_example.com\"",
|
"detail": "Invalid underscore in DNS name \"_example.com\"",
|
||||||
|
|
|
@ -29,5 +29,5 @@
|
||||||
"https://example.com/acme/authz/1234",
|
"https://example.com/acme/authz/1234",
|
||||||
"https://example.com/acme/authz/2345"
|
"https://example.com/acme/authz/2345"
|
||||||
],
|
],
|
||||||
"finalizeURL": "https://example.com/acme/acct/1/order/1/finalize"
|
"finalize": "https://example.com/acme/acct/1/order/1/finalize"
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
"contact": [
|
"contact": [
|
||||||
"mailto:foo2@example.com"
|
"mailto:foo2@example.com"
|
||||||
],
|
],
|
||||||
"terms-of-service-agreed": true,
|
"termsOfServiceAgreed": true,
|
||||||
"orders": "https://example.com/acme/acct/1/orders"
|
"orders": "https://example.com/acme/acct/1/orders"
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
"https://example.com/acme/authz/1234",
|
"https://example.com/acme/authz/1234",
|
||||||
"https://example.com/acme/authz/2345"
|
"https://example.com/acme/authz/2345"
|
||||||
],
|
],
|
||||||
"finalizeURL": "https://example.com/acme/acct/1/order/1/finalize",
|
"finalize": "https://example.com/acme/acct/1/order/1/finalize",
|
||||||
"certificate": "https://example.com/acme/cert/1234",
|
"certificate": "https://example.com/acme/cert/1234",
|
||||||
"error": {
|
"error": {
|
||||||
"type": "urn:ietf:params:acme:error:connection",
|
"type": "urn:ietf:params:acme:error:connection",
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class SessionIT extends PebbleITBase {
|
||||||
assertThat(meta.getWebsite(), is(nullValue()));
|
assertThat(meta.getWebsite(), is(nullValue()));
|
||||||
assertThat(meta.getCaaIdentities(), is(empty()));
|
assertThat(meta.getCaaIdentities(), is(empty()));
|
||||||
assertThat(meta.getJSON().toString(), sameJSONAs("{"
|
assertThat(meta.getJSON().toString(), sameJSONAs("{"
|
||||||
+ "'terms-of-service': 'data:text/plain,Do%20what%20thou%20wilt'"
|
+ "'termsOfService': 'data:text/plain,Do%20what%20thou%20wilt'"
|
||||||
+ "}"));
|
+ "}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue