- 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 TypeMethodDescriptionvoid
close()
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 theLocation
header.getNonce()
Gets the nonce from the nonce header.void
handleRetryAfter
(String message) Throws anAcmeRetryAfterException
if 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.void
resetNonce
(Session session) Resets the session nonce, by fetching a new one.int
sendCertificateRequest
(URL url, Login login) Sends a signed POST-as-GET request for a certificate resource.int
sendRequest
(URL url, Session session, ZonedDateTime ifModifiedSince) Sends a simple GET request.int
sendSignedPostAsGetRequest
(URL url, Login login) Sends a signed POST-as-GET request.int
sendSignedRequest
(URL url, JSONBuilder claims, Login login) Sends a signed POST request.int
sendSignedRequest
(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
-Session
instance 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
, anAcmeException
matching the error is raised.- Parameters:
url
-URL
to send the request to.session
-Session
instance to be used for trackingifModifiedSince
-ZonedDateTime
to be sent as "If-Modified-Since" header, ornull
if 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 aLogin
for the session andKeyPair
. TheLogin
account location is sent in a "kid" protected header.If the server does not return a 200 class status code, an
AcmeException
is raised matching the error.- Parameters:
url
-URL
to send the request to.login
-Login
instance 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 aLogin
for the session andKeyPair
. TheLogin
account location is sent in a "kid" protected header.If the server does not return a 200 class status code, an
AcmeException
is raised matching the error.- Parameters:
url
-URL
to send the request to.login
-Login
instance to be used for signing and tracking.- Returns:
- HTTP 200 class status that was returned
- Throws:
AcmeException
-
sendSignedRequest
Sends a signed POST request. Requires aLogin
for the session andKeyPair
. TheLogin
account location is sent in a "kid" protected header.If the server does not return a 200 class status code, an
AcmeException
is raised matching the error.- Parameters:
url
-URL
to send the request to.claims
-JSONBuilder
containing claims.login
-Login
instance 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
. TheKeyPair
is sent in a "jwk" protected header field.If the server does not return a 200 class status code, an
AcmeException
is raised matching the error.- Parameters:
url
-URL
to send the request to.claims
-JSONBuilder
containing claims.session
-Session
instance to be used for tracking.keypair
-KeyPair
to 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 anAcmeRetryAfterException
if 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
null
if no nonce header was set
-
getLocation
Gets a location from theLocation
header.Relative links are resolved against the last request's URL.
- Returns:
- Location
URL
, ornull
if 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:
close
in interfaceAutoCloseable
-