GeezerVison is showing github.com — Support for client certificate chains (#1371) · ConnorLinfoot/docker-java@ee2b249
File tree
Expand file treeCollapse file tree
Open diff view settings
docker-java-core/src/main/java/com/github/dockerjava/core/util docker-java/src/test/java/com/github/dockerjava/core/util
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: docker-java-core/src/main/java/com/github/dockerjava/core/util/CertificateUtils.java +6-4Lines changed: 6 additions & 4 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -89,11 +89,13 @@ public static List<Certificate> loadCertificates(final Reader reader) throws IOE |
89 | 89 |
|
90 | 90 | JcaX509CertificateConverter certificateConverter = new JcaX509CertificateConverter() |
91 | 91 | .setProvider(BouncyCastleProvider.PROVIDER_NAME); |
92 | | - Object certObj = pemParser.readObject(); |
| 92 | + Object certObj; |
93 | 93 |
|
94 | | - if (certObj instanceof X509CertificateHolder) { |
95 | | - X509CertificateHolder certificateHolder = (X509CertificateHolder) certObj; |
96 | | - certificates.add(certificateConverter.getCertificate(certificateHolder)); |
| 94 | + while ((certObj = pemParser.readObject()) != null) { |
| 95 | + if (certObj instanceof X509CertificateHolder) { |
| 96 | + X509CertificateHolder certificateHolder = (X509CertificateHolder) certObj; |
| 97 | + certificates.add(certificateConverter.getCertificate(certificateHolder)); |
| 98 | + } |
97 | 99 | } |
98 | 100 |
|
99 | 101 | return certificates; |
|
Collapse file
Copy file name to clipboardExpand all lines: docker-java/src/test/java/com/github/dockerjava/core/util/CertificateUtilsTest.java +16Lines changed: 16 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
11 | 11 | import java.nio.file.Paths; |
12 | 12 | import java.security.KeyStore; |
13 | 13 | import java.security.Security; |
| 14 | +import java.security.cert.Certificate; |
| 15 | +import java.util.List; |
14 | 16 |
|
15 | 17 | import static org.hamcrest.MatcherAssert.assertThat; |
16 | 18 | import static org.hamcrest.core.Is.is; |
@@ -86,6 +88,20 @@ public void readMultipleCaCerts() throws Exception { |
86 | 88 | assertThat(keyStore.isCertificateEntry("ca-2"), is(true)); |
87 | 89 | } |
88 | 90 |
|
| 91 | + @Test |
| 92 | + public void readCert() throws Exception { |
| 93 | + String certpem = readFileAsString("caTest/single_ca.pem"); |
| 94 | + List<Certificate> certs = CertificateUtils.loadCertificates(certpem); |
| 95 | + assertThat(certs.size(), is(1)); |
| 96 | + } |
| 97 | + |
| 98 | + @Test |
| 99 | + public void readMultipleCerts() throws Exception { |
| 100 | + String certpem = readFileAsString("caTest/multiple_ca.pem"); |
| 101 | + List<Certificate> certs = CertificateUtils.loadCertificates(certpem); |
| 102 | + assertThat(certs.size(), is(2)); |
| 103 | + } |
| 104 | + |
89 | 105 | private String readFileAsString(String path) throws IOException { |
90 | 106 | return new String(Files.readAllBytes(Paths.get(new File(baseDir + path).getPath()))); |
91 | 107 | } |
|