- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
DefaultConnection
Connects to the ACME server and offers different methods for invoking the API.
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes theConnection, releasing all resources.Returns the expiration date of the resource, if present.Returns the content of the last-modified header, if present.Gets one or more relation links from the header.Gets a location from theLocationheader.getNonce()Gets the nonce from the nonce header.voidhandleRetryAfter(String message) Throws anAcmeRetryAfterExceptionif the last status was HTTP Accepted and a Retry-After header was received.Reads a certificate and its issuers.Reads a server response as JSON data.voidresetNonce(Session session) Resets the session nonce, by fetching a new one.intsendCertificateRequest(URL url, Login login) Sends a signed POST-as-GET request for a certificate resource.intsendRequest(URL url, Session session, ZonedDateTime ifModifiedSince) Sends a simple GET request.intsendSignedPostAsGetRequest(URL url, Login login) Sends a signed POST-as-GET request.intsendSignedRequest(URL url, JSONBuilder claims, Login login) Sends a signed POST request.intsendSignedRequest(URL url, JSONBuilder claims, Session session, KeyPair keypair) Sends a signed POST request.
-
Method Details
-
resetNonce
Resets the session nonce, by fetching a new one.- Parameters:
session-Sessioninstance to fetch a nonce for- Throws:
AcmeException
-
sendRequest
int sendRequest(URL url, Session session, @Nullable ZonedDateTime ifModifiedSince) throws AcmeException Sends a simple GET request.If the response code was not
HttpURLConnection.HTTP_OK, anAcmeExceptionmatching the error is raised.- Parameters:
url-URLto send the request to.session-Sessioninstance to be used for trackingifModifiedSince-ZonedDateTimeto be sent as "If-Modified-Since" header, ornullif this header is not to be used- Returns:
- HTTP status that was returned
- Throws:
AcmeException
-
sendCertificateRequest
Sends a signed POST-as-GET request for a certificate resource. Requires aLoginfor the session andKeyPair. TheLoginaccount location is sent in a "kid" protected header.If the server does not return a 200 class status code, an
AcmeExceptionis raised matching the error.- Parameters:
url-URLto send the request to.login-Logininstance to be used for signing and tracking.- Returns:
- HTTP 200 class status that was returned
- Throws:
AcmeException
-
sendSignedPostAsGetRequest
Sends a signed POST-as-GET request. Requires aLoginfor the session andKeyPair. TheLoginaccount location is sent in a "kid" protected header.If the server does not return a 200 class status code, an
AcmeExceptionis raised matching the error.- Parameters:
url-URLto send the request to.login-Logininstance to be used for signing and tracking.- Returns:
- HTTP 200 class status that was returned
- Throws:
AcmeException
-
sendSignedRequest
Sends a signed POST request. Requires aLoginfor the session andKeyPair. TheLoginaccount location is sent in a "kid" protected header.If the server does not return a 200 class status code, an
AcmeExceptionis raised matching the error.- Parameters:
url-URLto send the request to.claims-JSONBuildercontaining claims.login-Logininstance to be used for signing and tracking.- Returns:
- HTTP 200 class status that was returned
- Throws:
AcmeException
-
sendSignedRequest
int sendSignedRequest(URL url, JSONBuilder claims, Session session, KeyPair keypair) throws AcmeException Sends a signed POST request. Only requires aSession. TheKeyPairis sent in a "jwk" protected header field.If the server does not return a 200 class status code, an
AcmeExceptionis raised matching the error.- Parameters:
url-URLto send the request to.claims-JSONBuildercontaining claims.session-Sessioninstance to be used for tracking.keypair-KeyPairto be used for signing.- Returns:
- HTTP 200 class status that was returned
- Throws:
AcmeException
-
readJsonResponse
Reads a server response as JSON data.- Returns:
- The JSON response.
- Throws:
AcmeProtocolException- if the JSON response was empty.AcmeException
-
readCertificates
Reads a certificate and its issuers.- Returns:
- List of X.509 certificate and chain that was read.
- Throws:
AcmeException
-
handleRetryAfter
Throws anAcmeRetryAfterExceptionif the last status was HTTP Accepted and a Retry-After header was received.- Parameters:
message- Message to be sent along with theAcmeRetryAfterException- Throws:
AcmeException
-
getNonce
Gets the nonce from the nonce header.- Returns:
- Base64 encoded nonce, or
nullif no nonce header was set
-
getLocation
Gets a location from theLocationheader.Relative links are resolved against the last request's URL.
- Returns:
- Location
URL, ornullif no Location header was set
-
getLastModified
Returns the content of the last-modified header, if present.- Returns:
- Date in the Last-Modified header, or empty if the server did not provide this information.
- Since:
- 2.10
-
getExpiration
Returns the expiration date of the resource, if present.- Returns:
- Expiration date, either from the Cache-Control or Expires header. If empty, the server did not provide an expiration date, or forbid caching.
- Since:
- 2.10
-
getLinks
Gets one or more relation links from the header. The result is expected to be an URL.Relative links are resolved against the last request's URL.
- Parameters:
relation- Link relation- Returns:
- Collection of links. Empty if there was no such relation.
-
close
void close()Closes theConnection, releasing all resources.- Specified by:
closein interfaceAutoCloseable
-