diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/TokenChallenge.java b/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/TokenChallenge.java index 66fae937..12dda0b1 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/TokenChallenge.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/TokenChallenge.java @@ -22,6 +22,7 @@ import org.jose4j.lang.JoseException; import org.shredzone.acme4j.Login; import org.shredzone.acme4j.exception.AcmeProtocolException; import org.shredzone.acme4j.toolbox.JSON; +import org.shredzone.acme4j.toolbox.JSONBuilder; /** * An extension of {@link Challenge} that handles challenges with a {@code token} and @@ -31,6 +32,7 @@ public class TokenChallenge extends Challenge { private static final long serialVersionUID = 1634133407432681800L; protected static final String KEY_TOKEN = "token"; + protected static final String KEY_KEY_AUTHORIZATION = "keyAuthorization"; /** * Creates a new generic {@link TokenChallenge} object. @@ -44,6 +46,12 @@ public class TokenChallenge extends Challenge { super(login, data); } + @Override + protected void prepareResponse(JSONBuilder response) { + super.prepareResponse(response); + response.put(KEY_KEY_AUTHORIZATION, getAuthorization()); + } + /** * Gets the token. */ diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/DnsChallengeTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/DnsChallengeTest.java index 9dd1daef..fcaf174d 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/DnsChallengeTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/DnsChallengeTest.java @@ -30,6 +30,8 @@ import org.shredzone.acme4j.toolbox.TestUtils; * Unit tests for {@link Dns01Challenge}. */ public class DnsChallengeTest { + private static final String KEY_AUTHORIZATION = + "pNvmJivs0WCko2suV7fhe-59oFqyYx_yB7tx6kIMAyE.HnWjTDnyqlCrm6tZ-6wX-TrEXgRdeNu9G71gqxSO6o0"; private Login login = TestUtils.login(); @@ -43,12 +45,12 @@ public class DnsChallengeTest { assertThat(challenge.getType(), is(Dns01Challenge.TYPE)); assertThat(challenge.getStatus(), is(Status.PENDING)); assertThat(challenge.getDigest(), is("rzMmotrIgsithyBYc0vgiLUEEKYx0WetQRgEF2JIozA")); - assertThat(challenge.getAuthorization(), is("pNvmJivs0WCko2suV7fhe-59oFqyYx_yB7tx6kIMAyE.HnWjTDnyqlCrm6tZ-6wX-TrEXgRdeNu9G71gqxSO6o0")); JSONBuilder response = new JSONBuilder(); challenge.prepareResponse(response); - assertThat(response.toString(), sameJSONAs("{}").allowingExtraUnexpectedFields()); + assertThat(response.toString(), sameJSONAs("{\"keyAuthorization\"=\"" + + KEY_AUTHORIZATION + "\"}").allowingExtraUnexpectedFields()); } } diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/HttpChallengeTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/HttpChallengeTest.java index 714309fd..2773d2a9 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/HttpChallengeTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/challenge/HttpChallengeTest.java @@ -53,7 +53,8 @@ public class HttpChallengeTest { JSONBuilder response = new JSONBuilder(); challenge.prepareResponse(response); - assertThat(response.toString(), sameJSONAs("{}").allowingExtraUnexpectedFields()); + assertThat(response.toString(), sameJSONAs("{\"keyAuthorization\"=\"" + + KEY_AUTHORIZATION + "\"}").allowingExtraUnexpectedFields()); } /** diff --git a/acme4j-client/src/test/resources/json/triggerHttpChallengeRequest.json b/acme4j-client/src/test/resources/json/triggerHttpChallengeRequest.json index 2c63c085..8ecbc882 100644 --- a/acme4j-client/src/test/resources/json/triggerHttpChallengeRequest.json +++ b/acme4j-client/src/test/resources/json/triggerHttpChallengeRequest.json @@ -1,2 +1,3 @@ { + "keyAuthorization": "IlirfxKKXAsHtmzK29Pj8A.HnWjTDnyqlCrm6tZ-6wX-TrEXgRdeNu9G71gqxSO6o0" } diff --git a/acme4j-client/src/test/resources/json/triggerHttpChallengeResponse.json b/acme4j-client/src/test/resources/json/triggerHttpChallengeResponse.json index 42ce743d..6845afe5 100644 --- a/acme4j-client/src/test/resources/json/triggerHttpChallengeResponse.json +++ b/acme4j-client/src/test/resources/json/triggerHttpChallengeResponse.json @@ -2,5 +2,6 @@ "type": "http-01", "status": "pending", "url": "https://example.com/acme/some-location", - "token": "IlirfxKKXAsHtmzK29Pj8A" + "token": "IlirfxKKXAsHtmzK29Pj8A", + "keyAuthorization": "XbmEGDDc2AMDArHLt5x7GxZfIRv0aScknUKlyf5S4KU.KMH_h8aGAKlY3VQqBUczm1cfo9kaovivy59rSY1xZ0E" }