Add method to get a list of alternate certificates

pull/98/head
Richard Körber 2020-11-12 22:39:24 +01:00
parent 7ecf12f6cb
commit 3cf73e9f5c
No known key found for this signature in database
GPG Key ID: AAB9FD19C78AA3E0
2 changed files with 19 additions and 0 deletions

View File

@ -24,6 +24,7 @@ import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import edu.umd.cs.findbugs.annotations.Nullable;
import org.shredzone.acme4j.connector.Connection;
@ -110,6 +111,19 @@ public class Certificate extends AcmeResource {
}
}
/**
* Returns alternate certificate chains, if available.
*
* @return Alternate certificate chains, or empty if there are none.
* @since 2.11
*/
public List<Certificate> getAlternateCertificates() {
Login login = getLogin();
return getAlternates().stream()
.map(login::bindCertificate)
.collect(Collectors.toList());
}
/**
* Writes the certificate to the given writer. It is written in PEM format, with the
* end-entity cert coming first, followed by the intermediate ceritificates.

View File

@ -113,6 +113,11 @@ public class CertificateTest {
assertThat(cert.getAlternates().get(0), is(url("https://example.com/acme/alt-cert/1")));
assertThat(cert.getAlternates().get(1), is(url("https://example.com/acme/alt-cert/2")));
assertThat(cert.getAlternateCertificates(), is(notNullValue()));
assertThat(cert.getAlternateCertificates().size(), is(2));
assertThat(cert.getAlternateCertificates().get(0).getLocation(), is(url("https://example.com/acme/alt-cert/1")));
assertThat(cert.getAlternateCertificates().get(1).getLocation(), is(url("https://example.com/acme/alt-cert/2")));
provider.close();
}