Some more documentation changes

pull/30/head
Richard Körber 2016-07-21 21:30:55 +02:00
parent bc0338bcab
commit 434b349d20
80 changed files with 20 additions and 152 deletions

View File

@ -8,6 +8,12 @@ This Java client helps connecting to an ACME server, and performing all necessar
It is an independent open source implementation that is not affiliated with or endorsed by _Let's Encrypt_.
## Migration Guide
Major parts of the _acme4j_ API have changed in this version.
Please see the [migration guide](https://shredzone.org/maven/acme4j/migration.html) for how to update your code to the new API. It should just be a matter of a few minutes.
## Features
* Supports ACME protocol up to [draft 02](https://tools.ietf.org/html/draft-ietf-acme-acme-02)
@ -19,7 +25,7 @@ It is an independent open source implementation that is not affiliated with or e
## Usage
* See the [online documentation](http://www.shredzone.org/maven/acme4j/) about how to use _acme4j_.
* See the [online documentation](https://shredzone.org/maven/acme4j/) about how to use _acme4j_.
* For a quick start, have a look at [the source code of an example](https://github.com/shred/acme4j/blob/master/acme4j-example/src/main/java/org/shredzone/acme4j/ClientTest.java).
## Beta Release

View File

@ -18,8 +18,6 @@ import java.net.URI;
/**
* A generic ACME resource.
*
* @author Richard "Shred" Körber *
*/
public abstract class AcmeResource implements Serializable {
private static final long serialVersionUID = -7930580802257379731L;

View File

@ -36,8 +36,6 @@ import org.slf4j.LoggerFactory;
/**
* Represents an authorization request at the ACME server.
*
* @author Richard "Shred" Körber
*/
public class Authorization extends AcmeResource {
private static final long serialVersionUID = -3116928998379417741L;

View File

@ -34,8 +34,6 @@ import org.slf4j.LoggerFactory;
/**
* Represents a certificate and its certificate chain.
*
* @author Richard "Shred" Körber
*/
public class Certificate extends AcmeResource {
private static final long serialVersionUID = 7381527770159084201L;

View File

@ -23,8 +23,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
/**
* Contains metadata related to the provider.
*
* @author Richard "Shred" Körber
*/
public class Metadata {

View File

@ -45,8 +45,6 @@ import org.slf4j.LoggerFactory;
/**
* Represents a registration at the ACME server.
*
* @author Richard "Shred" Körber
*/
public class Registration extends AcmeResource {
private static final long serialVersionUID = -8177333806740391140L;

View File

@ -30,8 +30,6 @@ import org.slf4j.LoggerFactory;
/**
* A builder for a new account registration.
*
* @author Richard "Shred" Körber
*/
public class RegistrationBuilder {
private static final Logger LOG = LoggerFactory.getLogger(RegistrationBuilder.class);

View File

@ -18,7 +18,6 @@ package org.shredzone.acme4j;
*
* @see <a href="https://tools.ietf.org/html/rfc5280#section-5.3.1">RFC 5280 Section
* 5.3.1</a>
* @author Richard "Shred" Körber
*/
public enum RevocationReason {

View File

@ -36,8 +36,6 @@ import org.shredzone.acme4j.provider.AcmeProvider;
* <p>
* Note that {@link Session} objects are not serializable, as they contain a keypair and
* volatile data.
*
* @author Richard "Shred" Körber
*/
public class Session {
private final Map<Resource, URI> resourceMap = new EnumMap<>(Resource.class);

View File

@ -15,8 +15,6 @@ package org.shredzone.acme4j;
/**
* Status codes of challenges and authorizations.
*
* @author Richard "Shred" Körber
*/
public enum Status {

View File

@ -45,8 +45,6 @@ import org.slf4j.LoggerFactory;
* Subclasses must override {@link Challenge#acceptable(String)} so it only accepts the
* own type. {@link Challenge#respond(ClaimBuilder)} should be overridden to put all
* required data to the response.
*
* @author Richard "Shred" Körber
*/
public class Challenge extends AcmeResource {
private static final long serialVersionUID = 2338794776848388099L;

View File

@ -23,8 +23,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
/**
* Implements the {@value TYPE} challenge.
*
* @author Richard "Shred" Körber
*/
public class Dns01Challenge extends TokenChallenge {
private static final long serialVersionUID = 6964687027713533075L;

View File

@ -20,8 +20,6 @@ import org.shredzone.acme4j.util.ClaimBuilder;
/**
* Implements the {@value TYPE} challenge.
*
* @author Richard "Shred" Körber
*/
public class Http01Challenge extends TokenChallenge {
private static final long serialVersionUID = 3322211185872544605L;

View File

@ -21,8 +21,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
/**
* Implements the {@value TYPE} challenge.
*
* @author Richard "Shred" Körber
*/
public class OutOfBand01Challenge extends Challenge {
private static final long serialVersionUID = -7459595198486630582L;

View File

@ -26,7 +26,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
* @deprecated Use {@link TlsSni02Challenge} if supported by the CA. This challenge will
* be removed when Let's Encrypt removes support for
* {@link TlsSni01Challenge}.
* @author Richard "Shred" Körber
*/
@Deprecated
public class TlsSni01Challenge extends TokenChallenge {

View File

@ -22,8 +22,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
/**
* Implements the {@value TYPE} challenge.
*
* @author Richard "Shred" Körber
*/
public class TlsSni02Challenge extends TokenChallenge {
private static final long serialVersionUID = 8921833167878544518L;

View File

@ -24,8 +24,6 @@ import org.shredzone.acme4j.util.SignatureUtils;
/**
* An extension of {@link Challenge} that handles challenges with a {@code token} and
* {@code keyAuthorization}.
*
* @author Richard "Shred" Körber
*/
public class TokenChallenge extends Challenge {
private static final long serialVersionUID = 1634133407432681800L;

View File

@ -26,8 +26,6 @@ import org.shredzone.acme4j.util.ClaimBuilder;
/**
* Connects to the ACME server and offers different methods for invoking the API.
*
* @author Richard "Shred" Körber
*/
public interface Connection extends AutoCloseable {

View File

@ -52,8 +52,6 @@ import org.slf4j.LoggerFactory;
/**
* Default implementation of {@link Connection}.
*
* @author Richard "Shred" Körber
*/
public class DefaultConnection implements Connection {
private static final Logger LOG = LoggerFactory.getLogger(DefaultConnection.class);

View File

@ -23,8 +23,6 @@ import java.net.URI;
* <p>
* Subclasses may reconfigure the {@link HttpURLConnection} and pin it to a concrete SSL
* certificate.
*
* @author Richard "Shred" Körber
*/
public class HttpConnector {

View File

@ -15,8 +15,6 @@ package org.shredzone.acme4j.connector;
/**
* Enumeration of resources.
*
* @author Richard "Shred" Körber
*/
public enum Resource {

View File

@ -33,8 +33,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
/**
* An {@link Iterator} that fetches a batch of URIs from the ACME server, and
* generates {@link AcmeResource} instances.
*
* @author Richard "Shred" Körber
*/
public abstract class ResourceIterator<T extends AcmeResource> implements Iterator<T> {

View File

@ -18,8 +18,6 @@ import java.net.URI;
/**
* An exception that is thrown when there is a conflict with the request. For example,
* this exception is thrown when a registration already exists.
*
* @author Richard "Shred" Körber
*/
public class AcmeConflictException extends AcmeException {
private static final long serialVersionUID = 7454201988845449591L;

View File

@ -15,8 +15,6 @@ package org.shredzone.acme4j.exception;
/**
* A generic ACME exception.
*
* @author Richard "Shred" Körber
*/
public class AcmeException extends Exception {
private static final long serialVersionUID = -2935088954705632025L;

View File

@ -18,8 +18,6 @@ import java.io.IOException;
/**
* This exception is thrown when a network error occured while communicating with the
* server.
*
* @author Richard "Shred" Körber
*/
public class AcmeNetworkException extends AcmeException {
private static final long serialVersionUID = 2054398693543329179L;

View File

@ -16,8 +16,6 @@ package org.shredzone.acme4j.exception;
/**
* This runtime exception is thrown on ACME protocol errors that should not occur. For
* example, this exception is thrown when a server response could not be parsed.
*
* @author Richard "Shred" Körber
*/
public class AcmeProtocolException extends RuntimeException {
private static final long serialVersionUID = 2031203835755725193L;

View File

@ -17,8 +17,6 @@ import java.util.Date;
/**
* An exception that is thrown when a rate limit was exceeded.
*
* @author Richard "Shred" Körber
*/
public class AcmeRateLimitExceededException extends AcmeServerException {
private static final long serialVersionUID = 4150484059796413069L;

View File

@ -18,8 +18,6 @@ import java.util.Date;
/**
* This exception is thrown when a server side process has not been completed yet, and the
* server returned an estimated retry date.
*
* @author Richard "Shred" Körber
*/
public class AcmeRetryAfterException extends AcmeException {
private static final long serialVersionUID = 4461979121063649905L;

View File

@ -16,8 +16,6 @@ package org.shredzone.acme4j.exception;
/**
* An exception that is thrown when the ACME server returned an error. It contains
* further details of the cause.
*
* @author Richard "Shred" Körber
*/
public class AcmeServerException extends AcmeException {
private static final long serialVersionUID = 5971622508467042792L;

View File

@ -16,8 +16,6 @@ package org.shredzone.acme4j.exception;
/**
* An exception that is thrown when the client is not authorized. The details will give
* an explanation for the reasons (e.g. "client not on a whitelist").
*
* @author Richard "Shred" Körber
*/
public class AcmeUnauthorizedException extends AcmeServerException {
private static final long serialVersionUID = 9064697508262919366L;

View File

@ -36,8 +36,6 @@ import org.shredzone.acme4j.exception.AcmeNetworkException;
* <p>
* Implementing classes must implement at least {@link AcmeProvider#accepts(URI)}
* and {@link AbstractAcmeProvider#resolve(URI)}.
*
* @author Richard "Shred" Körber
*/
public abstract class AbstractAcmeProvider implements AcmeProvider {

View File

@ -27,8 +27,6 @@ import org.shredzone.acme4j.exception.AcmeException;
* server. Implementations handle individual features of each ACME server.
* <p>
* Provider implementations must be registered with Java's {@link ServiceLoader}.
*
* @author Richard "Shred" Körber
*/
public interface AcmeProvider {

View File

@ -20,8 +20,6 @@ import java.net.URI;
* the ACME specifications.
* <p>
* The {@code serverUri} is either a http or https URI to the server's directory service.
*
* @author Richard "Shred" Körber
*/
public class GenericAcmeProvider extends AbstractAcmeProvider {

View File

@ -30,7 +30,6 @@ import org.shredzone.acme4j.provider.AcmeProvider;
* If you want to use <em>Let's Encrypt</em>, always prefer to use this provider, as it
* takes care for the correct connection and SSL certificates.
*
* @author Richard "Shred" Körber
* @see <a href="https://letsencrypt.org/">Let's Encrypt</a>
*/
public class LetsEncryptAcmeProvider extends AbstractAcmeProvider {

View File

@ -32,8 +32,6 @@ import org.shredzone.acme4j.connector.HttpConnector;
/**
* {@link HttpConnector} to be used for Let's Encrypt. It is pinned to the Let's Encrypt
* server certificate.
*
* @author Richard "Shred" Körber
*/
public class LetsEncryptHttpConnector extends HttpConnector {

View File

@ -40,8 +40,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
* cb.object("sub").put("data", "subdata");
* cb.array("array", 123, 456, 789);
* </pre>
*
* @author Richard "Shred" Körber
*/
public class ClaimBuilder {

View File

@ -29,8 +29,6 @@ import org.shredzone.acme4j.exception.AcmeProtocolException;
/**
* Utility class for signatures.
*
* @author Richard "Shred" Körber
*/
public final class SignatureUtils {

View File

@ -24,7 +24,6 @@ import java.util.regex.Pattern;
* Parses a timestamp as defined in RFC 3339.
*
* @see <a href="https://www.ietf.org/rfc/rfc3339.txt">RFC 3339</a>
* @author Richard "Shred" Körber
*/
public class TimestampParser {

View File

@ -24,7 +24,7 @@
<item name="GitHub" href="https://github.com/shred/acme4j"/>
</links>
<breadcrumbs>
<item name="shredzone.org" href="http://www.shredzone.org"/>
<item name="shredzone.org" href="https://shredzone.org"/>
<item name="acme4j" href="../index.html"/>
<item name="acme4j-client" href="index.html"/>
</breadcrumbs>

View File

@ -27,8 +27,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link AcmeResource}.
*
* @author Richard "Shred" Körber
*/
public class AcmeResourceTest {

View File

@ -37,8 +37,6 @@ import org.shredzone.acme4j.util.TimestampParser;
/**
* Unit tests for {@link Authorization}.
*
* @author Richard "Shred" Körber
*/
public class AuthorizationTest {

View File

@ -34,8 +34,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link Certificate}.
*
* @author Richard "Shred" Körber
*/
public class CertificateTest {

View File

@ -28,8 +28,6 @@ import org.shredzone.acme4j.util.ClaimBuilder;
/**
* Unit tests for {@link RegistrationBuilder}.
*
* @author Richard "Shred" Körber
*/
public class RegistrationBuilderTest {

View File

@ -47,8 +47,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link Registration}.
*
* @author Richard "Shred" Körber
*/
public class RegistrationTest {

View File

@ -35,8 +35,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit test for {@link Session}.
*
* @author Richard "Shred" Körber
*/
public class SessionTest {

View File

@ -20,8 +20,6 @@ import org.junit.Test;
/**
* Unit tests for {@link Status} enumeration.
*
* @author Richard "Shred" Körber
*/
public class StatusTest {

View File

@ -49,8 +49,6 @@ import org.shredzone.acme4j.util.TimestampParser;
/**
* Unit tests for {@link Challenge}.
*
* @author Richard "Shred" Körber
*/
public class ChallengeTest {
private Session session;

View File

@ -28,8 +28,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link Dns01Challenge}.
*
* @author Richard "Shred" Körber
*/
public class DnsChallengeTest {
private static final String KEY_AUTHORIZATION =

View File

@ -29,8 +29,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link Http01Challenge}.
*
* @author Richard "Shred" Körber
*/
public class HttpChallengeTest {
private static final String TOKEN =

View File

@ -29,8 +29,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link OutOfBand01Challenge}.
*
* @author Richard "Shred" Körber
*/
public class OutOfBandChallengeTest {
private static Session session;

View File

@ -28,8 +28,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link TlsSni01Challenge}.
*
* @author Richard "Shred" Körber
*/
@SuppressWarnings("deprecation") // must test a deprecated challenge
public class TlsSni01ChallengeTest {

View File

@ -28,8 +28,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link TlsSni02Challenge}.
*
* @author Richard "Shred" Körber
*/
public class TlsSni02ChallengeTest {
private static final String KEY_AUTHORIZATION =

View File

@ -45,8 +45,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link DefaultConnection}.
*
* @author Richard "Shred" Körber
*/
public class DefaultConnectionTest {

View File

@ -25,8 +25,6 @@ import org.shredzone.acme4j.util.ClaimBuilder;
/**
* Dummy implementation of {@link Connection} that always fails. Single methods are
* supposed to be overridden for testing.
*
* @author Richard "Shred" Körber
*/
public class DummyConnection implements Connection {

View File

@ -26,8 +26,6 @@ import org.junit.experimental.categories.Category;
/**
* Unit tests for {@link HttpConnector}.
*
* @author Richard "Shred" Körber
*/
public class HttpConnectorTest {

View File

@ -37,8 +37,6 @@ import org.shredzone.acme4j.util.ClaimBuilder;
/**
* Unit test for {@link ResourceIterator}.
*
* @author Richard "Shred" Körber
*/
public class ResourceIteratorTest {

View File

@ -20,8 +20,6 @@ import org.junit.Test;
/**
* Unit test for {@link Resource}.
*
* @author Richard "Shred" Körber
*/
public class ResourceTest {

View File

@ -34,8 +34,6 @@ import org.shredzone.acme4j.util.TestUtils;
* Unit tests for {@link Session#provider()}. Requires that both enclosed
* {@link AcmeProvider} implementations are registered via Java's {@link ServiceLoader}
* API when the test is run.
*
* @author Richard "Shred" Körber
*/
public class SessionProviderTest {

View File

@ -15,7 +15,7 @@ package org.shredzone.acme4j.provider;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.any;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
import static uk.co.datumedge.hamcrest.json.SameJSONAs.sameJSONAs;
@ -39,8 +39,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Unit tests for {@link AbstractAcmeProvider}.
*
* @author Richard "Shred" Körber
*/
public class AbstractAcmeProviderTest {

View File

@ -23,8 +23,6 @@ import org.junit.Test;
/**
* Unit tests for {@link GenericAcmeProvider}.
*
* @author Richard "Shred" Körber
*/
public class GenericAcmeProviderTest {

View File

@ -30,8 +30,6 @@ import org.shredzone.acme4j.util.TestUtils;
/**
* Test implementation of {@link AcmeProvider}. It also implements a dummy implementation
* of {@link Connection} that is always returned on {@link #connect()}.
*
* @author Richard "Shred" Körber
*/
public class TestableConnectionProvider extends DummyConnection implements AcmeProvider {
private final Map<String, Challenge> challengeMap = new HashMap<>();

View File

@ -23,8 +23,6 @@ import org.junit.Test;
/**
* Unit tests for {@link LetsEncryptAcmeProvider}.
*
* @author Richard "Shred" Körber
*/
public class LetsEncryptAcmeProviderTest {

View File

@ -30,8 +30,6 @@ import org.junit.experimental.categories.Category;
/**
* Unit test for {@link LetsEncryptHttpConnector}.
*
* @author Richard "Shred" Körber
*/
public class LetsEncryptHttpConnectorTest {

View File

@ -31,8 +31,6 @@ import org.shredzone.acme4j.connector.Resource;
/**
* Unit test for {@link ClaimBuilder}.
*
* @author Richard "Shred" Körber
*/
public class ClaimBuilderTest {

View File

@ -27,8 +27,6 @@ import org.junit.Test;
/**
* Unit tests for {@link SignatureUtils}.
*
* @author Richard "Shred" Körber
*/
public class SignatureUtilsTest {

View File

@ -48,8 +48,6 @@ import org.shredzone.acme4j.provider.AcmeProvider;
/**
* Some utility methods for unit tests.
*
* @author Richard "Shred" Körber
*/
public final class TestUtils {
public static final String N = "pZsTKY41y_CwgJ0VX7BmmGs_7UprmXQMGPcnSbBeJAjZHA9SyyJKaWv4fNUdBIAX3Y2QoZixj50nQLyLv2ng3pvEoRL0sx9ZHgp5ndAjpIiVQ_8V01TTYCEDUc9ii7bjVkgFAb4ValZGFJZ54PcCnAHvXi5g0ELORzGcTuRqHVAUckMV2otr0g0u_5bWMm6EMAbBrGQCgUGjbZQHjava1Y-5tHXZkPBahJ2LvKRqMmJUlr0anKuJJtJUG03DJYAxABv8YAaXFBnGw6kKJRpUFAC55ry4sp4kGy0NrK2TVWmZW9kStniRv4RaJGI9aZGYwQy2kUykibBNmWEQUlIwIw";

View File

@ -28,8 +28,6 @@ import org.junit.Test;
/**
* Unit tests for {@link TimestampParser}.
*
* @author Richard "Shred" Körber
*/
public class TimestampParserTest {

View File

@ -44,8 +44,6 @@ import org.slf4j.LoggerFactory;
* A simple client test tool.
* <p>
* Pass the names of the domains as parameters.
*
* @author Richard "Shred" Körber
*/
public class ClientTest {
private static final File USER_KEY_FILE = new File("user.key");

View File

@ -23,7 +23,7 @@
<item name="GitHub" href="https://github.com/shred/acme4j"/>
</links>
<breadcrumbs>
<item name="shredzone.org" href="http://www.shredzone.org"/>
<item name="shredzone.org" href="https://shredzone.org"/>
<item name="acme4j" href="../index.html"/>
<item name="acme4j-example" href="index.html"/>
</breadcrumbs>

View File

@ -45,8 +45,6 @@ import org.bouncycastle.util.io.pem.PemWriter;
* Generator for a CSR (Certificate Signing Request) suitable for ACME servers.
* <p>
* Requires {@code Bouncy Castle}.
*
* @author Richard "Shred" Körber
*/
public class CSRBuilder {
private static final String SIGNATURE_ALG = "SHA256withRSA";

View File

@ -43,8 +43,6 @@ import org.shredzone.acme4j.challenge.TlsSni02Challenge;
* Utility class offering convenience methods for certificates.
* <p>
* Requires {@code Bouncy Castle}.
*
* @author Richard "Shred" Körber
*/
public final class CertificateUtils {

View File

@ -35,8 +35,6 @@ import org.bouncycastle.openssl.jcajce.JcaPEMWriter;
* Utility class offering convenience methods for {@link KeyPair}.
* <p>
* Requires {@code Bouncy Castle}.
*
* @author Richard "Shred" Körber
*/
public class KeyPairUtils {

View File

@ -24,7 +24,7 @@
<item name="GitHub" href="https://github.com/shred/acme4j"/>
</links>
<breadcrumbs>
<item name="shredzone.org" href="http://www.shredzone.org"/>
<item name="shredzone.org" href="https://shredzone.org"/>
<item name="acme4j" href="../index.html"/>
<item name="acme4j-utils" href="index.html"/>
</breadcrumbs>

View File

@ -48,8 +48,6 @@ import com.jcabi.matchers.RegexMatchers;
/**
* Unit tests for {@link CSRBuilder}.
*
* @author Richard "Shred" Körber
*/
public class CSRBuilderTest {

View File

@ -39,8 +39,6 @@ import com.jcabi.matchers.RegexMatchers;
/**
* Unit tests for {@link CertificateUtils}.
*
* @author Richard "Shred" Körber
*/
public class CertificateUtilsTest {

View File

@ -32,8 +32,6 @@ import com.jcabi.matchers.RegexMatchers;
/**
* Unit tests for {@link KeyPairUtils}.
*
* @author Richard "Shred" Körber
*/
public class KeyPairUtilsTest {
private static final int KEY_SIZE = 2048;

View File

@ -10,7 +10,7 @@ Web site: [Let's Encrypt](https://letsencrypt.org)
## Features
* Connection to the ACME server is pinned to the Let's Encrypt certificate
* Accepts the ACME server certificate of Let's Encrypt even on older Java versions
## Limits

View File

@ -36,7 +36,9 @@ try {
}
```
Let me give an example of how to use the resource objects. To start an authorization process for a domain, we previously needed a `Registration` object, an `Authorization` object, and an `AcmeClient` instance. This is the old way:
Let me give an example of how to use the resource objects. To start an authorization process for a domain, we previously needed a `Registration` object, an `Authorization` object, and an `AcmeClient` instance.
This is the *old* way:
```java
AcmeClient client = ... // your ACME client
@ -58,7 +60,9 @@ Authorization auth = registration.authorizeDomain("example.org");
As you can see, the authorization method that actually invokes the ACME server has moved from `AcmeClient` to `Registration`.
Let's continue the example. We find and trigger a HTTP challenge. Previously, it worked like this:
Let's continue the example. We find and trigger a HTTP challenge.
Previously, it worked like this:
```java
Http01Challenge challenge = auth.findChallenge(Http01Challenge.TYPE);
@ -73,7 +77,7 @@ Http01Challenge challenge = auth.findChallenge(Http01Challenge.TYPE);
challenge.trigger();
```
Note that the `authorize()` method is not needed any more, and has been removed.
Note that the `authorize()` method is not needed any more, and has been removed without replacement.
As a rule of thumb, you will find the action methods in one of the objects you previously passed as parameter to the `AcmeClient` method. For example, when you wrote `client.triggerChallenge(registration, challenge)`, you will find the new `trigger` method in either `registration` or `challenge` (here it's `challenge`).

View File

@ -35,8 +35,6 @@ Client providers may verify the HTTPS certificate provided by the ACME server.
To do so, override the `createHttpConnector()` method of `AbstractAcmeProvider` and return a subclassed `HttpConnector` class that modifies the `HttpURLConnection` as required.
The source code of the [_Let's Encrypt_ provider](./apidocs/org/shredzone/acme4j/provider/letsencrypt/package-summary.html) gives an example of how to do that.
## Individual Challenges
If your ACME server provides challenges that are not specified in the ACME protocol, there should be an own `Challenge` implementation for each of your challenge, by extending the [`Challenge`](./apidocs/org/shredzone/acme4j/challenge/Challenge.html) class.

View File

@ -24,7 +24,7 @@
<item name="GitHub" href="https://github.com/shred/acme4j"/>
</links>
<breadcrumbs>
<item name="shredzone.org" href="http://www.shredzone.org"/>
<item name="shredzone.org" href="https://shredzone.org"/>
<item name="acme4j" href="index.html"/>
</breadcrumbs>
<menu name="Documentation">