From 1c75d28dae4e25946ed053e0d6ef150365bfc76f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20K=C3=B6rber?= Date: Mon, 1 May 2017 16:15:52 +0200 Subject: [PATCH] Use new-account instead of new-reg Remove unused resource keys --- .../shredzone/acme4j/RegistrationBuilder.java | 4 ++-- .../main/java/org/shredzone/acme4j/Session.java | 1 + .../org/shredzone/acme4j/connector/Resource.java | 9 ++++----- .../provider/pebble/PebbleAcmeProvider.java | 11 +++++++++++ .../acme4j/RegistrationBuilderTest.java | 2 +- .../java/org/shredzone/acme4j/SessionTest.java | 16 ++++++++-------- .../shredzone/acme4j/connector/ResourceTest.java | 9 ++++----- .../src/test/resources/json/directory.json | 6 +++--- .../src/test/resources/json/directoryNoMeta.json | 4 ++-- .../src/test/resources/json/newRegistration.json | 2 +- .../java/org/shredzone/acme4j/it/SessionIT.java | 2 +- 11 files changed, 38 insertions(+), 28 deletions(-) diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/RegistrationBuilder.java b/acme4j-client/src/main/java/org/shredzone/acme4j/RegistrationBuilder.java index 63e26b5f..91744f47 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/RegistrationBuilder.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/RegistrationBuilder.java @@ -94,7 +94,7 @@ public class RegistrationBuilder { try (Connection conn = session.provider().connect()) { JSONBuilder claims = new JSONBuilder(); - claims.putResource(Resource.NEW_REG); + claims.putResource(Resource.NEW_ACCOUNT); if (!contacts.isEmpty()) { claims.put("contact", contacts); } @@ -102,7 +102,7 @@ public class RegistrationBuilder { claims.put("terms-of-service-agreed", termsOfServiceAgreed); } - conn.sendJwkSignedRequest(session.resourceUrl(Resource.NEW_REG), claims, session); + conn.sendJwkSignedRequest(session.resourceUrl(Resource.NEW_ACCOUNT), claims, session); conn.accept(HttpURLConnection.HTTP_OK, HttpURLConnection.HTTP_CREATED); URL location = conn.getLocation(); diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java index 81ab2446..4a0db2bc 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java @@ -242,6 +242,7 @@ public class Session { map.put(res, url); } } + resourceMap.set(map); } diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/connector/Resource.java b/acme4j-client/src/main/java/org/shredzone/acme4j/connector/Resource.java index ef7c86ed..00aad5a6 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/connector/Resource.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/connector/Resource.java @@ -18,13 +18,12 @@ package org.shredzone.acme4j.connector; */ public enum Resource { - KEY_CHANGE("key-change"), - NEW_REG("new-reg"), - NEW_AUTHZ("new-authz"), - NEW_CERT("new-cert"), NEW_NONCE("new-nonce"), + NEW_ACCOUNT("new-account"), NEW_ORDER("new-order"), - REVOKE_CERT("revoke-cert"); + NEW_AUTHZ("new-authz"), + REVOKE_CERT("revoke-cert"), + KEY_CHANGE("key-change"); private final String path; diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/provider/pebble/PebbleAcmeProvider.java b/acme4j-client/src/main/java/org/shredzone/acme4j/provider/pebble/PebbleAcmeProvider.java index b7af199d..e8404cb4 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/provider/pebble/PebbleAcmeProvider.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/provider/pebble/PebbleAcmeProvider.java @@ -19,8 +19,11 @@ import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.shredzone.acme4j.Session; +import org.shredzone.acme4j.exception.AcmeException; import org.shredzone.acme4j.provider.AbstractAcmeProvider; import org.shredzone.acme4j.provider.AcmeProvider; +import org.shredzone.acme4j.util.JSON; /** * An {@link AcmeProvider} for Pebble. @@ -69,4 +72,12 @@ public class PebbleAcmeProvider extends AbstractAcmeProvider { } } + // TODO PEBBLE: new-reg + // https://github.com/letsencrypt/pebble/pull/24 + @Override + public JSON directory(Session session, URI serverUri) throws AcmeException { + JSON json = super.directory(session, serverUri); + return JSON.parse(json.toString().replace("\"new-reg\"", "\"new-account\"")); + } + } diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/RegistrationBuilderTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/RegistrationBuilderTest.java index 5008e952..c9840ab2 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/RegistrationBuilderTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/RegistrationBuilderTest.java @@ -82,7 +82,7 @@ public class RegistrationBuilderTest { } }; - provider.putTestResource(Resource.NEW_REG, resourceUrl); + provider.putTestResource(Resource.NEW_ACCOUNT, resourceUrl); RegistrationBuilder builder = new RegistrationBuilder(); builder.addContact("mailto:foo@example.com"); diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java index cd422796..9cdf844b 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java @@ -211,12 +211,12 @@ public class SessionTest { }; }; - assertThat(session.resourceUrl(Resource.NEW_REG), - is(new URL("https://example.com/acme/new-reg"))); + assertThat(session.resourceUrl(Resource.NEW_ACCOUNT), + is(new URL("https://example.com/acme/new-account"))); assertThat(session.resourceUrl(Resource.NEW_AUTHZ), is(new URL("https://example.com/acme/new-authz"))); - assertThat(session.resourceUrl(Resource.NEW_CERT), - is(new URL("https://example.com/acme/new-cert"))); + assertThat(session.resourceUrl(Resource.NEW_ORDER), + is(new URL("https://example.com/acme/new-order"))); assertThat(session.resourceUrl(Resource.REVOKE_CERT), is(nullValue())); @@ -235,12 +235,12 @@ public class SessionTest { * {@link Session} to assert */ private void assertSession(Session session) throws AcmeException, IOException { - assertThat(session.resourceUrl(Resource.NEW_REG), - is(new URL("https://example.com/acme/new-reg"))); + assertThat(session.resourceUrl(Resource.NEW_ACCOUNT), + is(new URL("https://example.com/acme/new-account"))); assertThat(session.resourceUrl(Resource.NEW_AUTHZ), is(new URL("https://example.com/acme/new-authz"))); - assertThat(session.resourceUrl(Resource.NEW_CERT), - is(new URL("https://example.com/acme/new-cert"))); + assertThat(session.resourceUrl(Resource.NEW_ORDER), + is(new URL("https://example.com/acme/new-order"))); assertThat(session.resourceUrl(Resource.REVOKE_CERT), is(nullValue())); diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/connector/ResourceTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/connector/ResourceTest.java index 80555f30..4383033b 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/connector/ResourceTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/connector/ResourceTest.java @@ -28,16 +28,15 @@ public class ResourceTest { */ @Test public void testPath() { - assertThat(Resource.KEY_CHANGE.path(), is("key-change")); - assertThat(Resource.NEW_AUTHZ.path(), is("new-authz")); - assertThat(Resource.NEW_CERT.path(), is("new-cert")); assertThat(Resource.NEW_NONCE.path(), is("new-nonce")); + assertThat(Resource.NEW_ACCOUNT.path(), is("new-account")); assertThat(Resource.NEW_ORDER.path(), is("new-order")); - assertThat(Resource.NEW_REG.path(), is("new-reg")); + assertThat(Resource.NEW_AUTHZ.path(), is("new-authz")); assertThat(Resource.REVOKE_CERT.path(), is("revoke-cert")); + assertThat(Resource.KEY_CHANGE.path(), is("key-change")); // fails if there are untested future Resource values - assertThat(Resource.values().length, is(7)); + assertThat(Resource.values().length, is(6)); } } diff --git a/acme4j-client/src/test/resources/json/directory.json b/acme4j-client/src/test/resources/json/directory.json index 86377617..95ec4980 100644 --- a/acme4j-client/src/test/resources/json/directory.json +++ b/acme4j-client/src/test/resources/json/directory.json @@ -1,8 +1,8 @@ { - "new-reg": "https://example.com/acme/new-reg", - "new-authz": "https://example.com/acme/new-authz", - "new-cert": "https://example.com/acme/new-cert", "new-nonce": "https://example.com/acme/new-nonce", + "new-account": "https://example.com/acme/new-account", + "new-order": "https://example.com/acme/new-order" + "new-authz": "https://example.com/acme/new-authz", "meta": { "terms-of-service": "https://example.com/acme/terms", "website": "https://www.example.com/", diff --git a/acme4j-client/src/test/resources/json/directoryNoMeta.json b/acme4j-client/src/test/resources/json/directoryNoMeta.json index 42aca4e3..15c597ac 100644 --- a/acme4j-client/src/test/resources/json/directoryNoMeta.json +++ b/acme4j-client/src/test/resources/json/directoryNoMeta.json @@ -1,5 +1,5 @@ { - "new-reg": "https://example.com/acme/new-reg", + "new-account": "https://example.com/acme/new-account", "new-authz": "https://example.com/acme/new-authz", - "new-cert": "https://example.com/acme/new-cert" + "new-order": "https://example.com/acme/new-order" } diff --git a/acme4j-client/src/test/resources/json/newRegistration.json b/acme4j-client/src/test/resources/json/newRegistration.json index dcc77e84..459694f9 100644 --- a/acme4j-client/src/test/resources/json/newRegistration.json +++ b/acme4j-client/src/test/resources/json/newRegistration.json @@ -1,5 +1,5 @@ { - "resource": "new-reg", + "resource": "new-account", "terms-of-service-agreed": true, "contact": [ "mailto:foo@example.com" diff --git a/acme4j-it/src/test/java/org/shredzone/acme4j/it/SessionIT.java b/acme4j-it/src/test/java/org/shredzone/acme4j/it/SessionIT.java index 6e416b19..c50b8284 100644 --- a/acme4j-it/src/test/java/org/shredzone/acme4j/it/SessionIT.java +++ b/acme4j-it/src/test/java/org/shredzone/acme4j/it/SessionIT.java @@ -52,8 +52,8 @@ public class SessionIT extends PebbleITBase { public void testResources() throws AcmeException { Session session = new Session(pebbleURI(), keyPair); + assertIsPebbleUrl(session.resourceUrl(Resource.NEW_ACCOUNT)); assertIsPebbleUrl(session.resourceUrl(Resource.NEW_NONCE)); - assertIsPebbleUrl(session.resourceUrl(Resource.NEW_REG)); assertIsPebbleUrl(session.resourceUrl(Resource.NEW_ORDER)); }