diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Account.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Account.java index 86ebb085..e79a564a 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/Account.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Account.java @@ -113,7 +113,7 @@ public class Account extends AcmeJsonResource { @Override public void update() throws AcmeException { LOG.debug("update Account"); - try (Connection conn = connect()) { + try (Connection conn = getSession().connect()) { conn.sendSignedRequest(getLocation(), new JSONBuilder(), getLogin()); JSON json = conn.readJsonResponse(); if (json != null) { @@ -181,7 +181,7 @@ public class Account extends AcmeJsonResource { URL newAuthzUrl = getSession().resourceUrl(Resource.NEW_AUTHZ); LOG.debug("preAuthorize {}", identifier); - try (Connection conn = connect()) { + try (Connection conn = getSession().connect()) { JSONBuilder claims = new JSONBuilder(); claims.put("identifier", identifier.toMap()); @@ -219,7 +219,7 @@ public class Account extends AcmeJsonResource { LOG.debug("key-change"); - try (Connection conn = connect()) { + try (Connection conn = getSession().connect()) { URL keyChangeUrl = getSession().resourceUrl(Resource.KEY_CHANGE); PublicJsonWebKey newKeyJwk = PublicJsonWebKey.Factory.newPublicJwk(newKeyPair.getPublic()); @@ -256,7 +256,7 @@ public class Account extends AcmeJsonResource { */ public void deactivate() throws AcmeException { LOG.debug("deactivate"); - try (Connection conn = connect()) { + try (Connection conn = getSession().connect()) { JSONBuilder claims = new JSONBuilder(); claims.put(KEY_STATUS, "deactivated"); @@ -344,7 +344,7 @@ public class Account extends AcmeJsonResource { */ public void commit() throws AcmeException { LOG.debug("modify/commit"); - try (Connection conn = connect()) { + try (Connection conn = getSession().connect()) { JSONBuilder claims = new JSONBuilder(); if (!editContacts.isEmpty()) { claims.put(KEY_CONTACT, editContacts); diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/AccountBuilder.java b/acme4j-client/src/main/java/org/shredzone/acme4j/AccountBuilder.java index 47e329e6..ca22ee74 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/AccountBuilder.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/AccountBuilder.java @@ -198,7 +198,7 @@ public class AccountBuilder { LOG.debug("create"); - try (Connection conn = session.provider().connect()) { + try (Connection conn = session.connect()) { URL resourceUrl = session.resourceUrl(Resource.NEW_ACCOUNT); JSONBuilder claims = new JSONBuilder(); diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeJsonResource.java b/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeJsonResource.java index 173ded70..1d8b6a5f 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeJsonResource.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeJsonResource.java @@ -115,7 +115,7 @@ public abstract class AcmeJsonResource extends AcmeResource { public void update() throws AcmeException { String resourceType = getClass().getSimpleName(); LOG.debug("update {}", resourceType); - try (Connection conn = connect()) { + try (Connection conn = getSession().connect()) { conn.sendSignedPostAsGetRequest(getLocation(), getLogin()); JSON json = conn.readJsonResponse(); if (json != null) { diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeResource.java b/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeResource.java index 9a797839..125ea232 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeResource.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/AcmeResource.java @@ -19,8 +19,6 @@ import java.util.Objects; import javax.annotation.ParametersAreNonnullByDefault; -import org.shredzone.acme4j.connector.Connection; - /** * A generic ACME resource. */ @@ -61,13 +59,6 @@ public abstract class AcmeResource implements Serializable { return getLogin().getSession(); } - /** - * Opens a {@link Connection} to the provider. - */ - protected Connection connect() { - return getSession().provider().connect(); - } - /** * Rebinds this resource to a {@link Login}. *
diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Authorization.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Authorization.java
index f29383d6..09492e95 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/Authorization.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Authorization.java
@@ -144,7 +144,7 @@ public class Authorization extends AcmeJsonResource {
*/
public void deactivate() throws AcmeException {
LOG.debug("deactivate");
- try (Connection conn = connect()) {
+ try (Connection conn = getSession().connect()) {
JSONBuilder claims = new JSONBuilder();
claims.put("status", "deactivated");
diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java
index 261c75ca..af7364dd 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java
@@ -70,7 +70,7 @@ public class Certificate extends AcmeResource {
public void download() throws AcmeException {
if (certChain == null) {
LOG.debug("download");
- try (Connection conn = connect()) {
+ try (Connection conn = getSession().connect()) {
conn.sendCertificateRequest(getLocation(), getLogin());
alternates = new ArrayList<>(conn.getLinks("alternate"));
certChain = new ArrayList<>(conn.readCertificates());
@@ -150,7 +150,7 @@ public class Certificate extends AcmeResource {
LOG.debug("revoke");
URL resUrl = getSession().resourceUrl(Resource.REVOKE_CERT);
- try (Connection conn = connect()) {
+ try (Connection conn = getSession().connect()) {
JSONBuilder claims = new JSONBuilder();
claims.putBase64("certificate", getCertificate().getEncoded());
if (reason != null) {
@@ -187,7 +187,7 @@ public class Certificate extends AcmeResource {
throw new AcmeException("Server does not allow certificate revocation");
}
- try (Connection conn = session.provider().connect()) {
+ try (Connection conn = session.connect()) {
JSONBuilder claims = new JSONBuilder();
claims.putBase64("certificate", cert.getEncoded());
if (reason != null) {
diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Order.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Order.java
index bc75e07f..a242b6db 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/Order.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Order.java
@@ -162,7 +162,7 @@ public class Order extends AcmeJsonResource {
*/
public void execute(byte[] csr) throws AcmeException {
LOG.debug("finalize");
- try (Connection conn = connect()) {
+ try (Connection conn = getSession().connect()) {
JSONBuilder claims = new JSONBuilder();
claims.putBase64("csr", csr);
@@ -235,7 +235,7 @@ public class Order extends AcmeJsonResource {
}
LOG.debug("cancel");
- try (Connection conn = connect()) {
+ try (Connection conn = getSession().connect()) {
JSONBuilder claims = new JSONBuilder();
claims.put("status", "canceled");
diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/OrderBuilder.java b/acme4j-client/src/main/java/org/shredzone/acme4j/OrderBuilder.java
index 50e41317..bc6997f0 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/OrderBuilder.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/OrderBuilder.java
@@ -245,7 +245,7 @@ public class OrderBuilder {
}
LOG.debug("create");
- try (Connection conn = session.provider().connect()) {
+ try (Connection conn = session.connect()) {
JSONBuilder claims = new JSONBuilder();
claims.array("identifiers", identifierSet.stream().map(Identifier::toMap).collect(toList()));
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 9fe8c01b..dc244a6e 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java
@@ -32,6 +32,7 @@ import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.ThreadSafe;
+import org.shredzone.acme4j.connector.Connection;
import org.shredzone.acme4j.connector.Resource;
import org.shredzone.acme4j.exception.AcmeException;
import org.shredzone.acme4j.provider.AcmeProvider;
@@ -172,6 +173,15 @@ public class Session {
return provider;
}
+ /**
+ * Returns a new {@link Connection} to the ACME server.
+ *
+ * @return {@link Connection}
+ */
+ public Connection connect() {
+ return provider.connect(getServerUri());
+ }
+
/**
* Gets the {@link URL} of the given {@link Resource}. This may involve connecting to
* the server and getting a directory. The result is cached.
diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/Challenge.java b/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/Challenge.java
index 4605396d..55d1fbda 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/Challenge.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/challenge/Challenge.java
@@ -148,7 +148,7 @@ public class Challenge extends AcmeJsonResource {
*/
public void trigger() throws AcmeException {
LOG.debug("trigger");
- try (Connection conn = connect()) {
+ try (Connection conn = getSession().connect()) {
JSONBuilder claims = new JSONBuilder();
prepareResponse(claims);
diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/connector/ResourceIterator.java b/acme4j-client/src/main/java/org/shredzone/acme4j/connector/ResourceIterator.java
index c3d68b80..568d02a1 100644
--- a/acme4j-client/src/main/java/org/shredzone/acme4j/connector/ResourceIterator.java
+++ b/acme4j-client/src/main/java/org/shredzone/acme4j/connector/ResourceIterator.java
@@ -144,7 +144,7 @@ public class ResourceIterator