Skip to content

Commit 8ff8883

Browse files
authored
QPID-8738: [Broker-J] Update TlsResource to JUnit 6 (#380)
1 parent f471eba commit 8ff8883

File tree

40 files changed

+1901
-1029
lines changed

40 files changed

+1901
-1029
lines changed

broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java

Lines changed: 76 additions & 78 deletions
Large diffs are not rendered by default.

broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java

Lines changed: 88 additions & 92 deletions
Large diffs are not rendered by default.

broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@
4747

4848
import org.junit.jupiter.api.BeforeEach;
4949
import org.junit.jupiter.api.Test;
50+
import org.junit.jupiter.api.extension.ExtendWith;
5051

51-
import org.junit.jupiter.api.extension.RegisterExtension;
5252
import org.mockito.ArgumentMatcher;
5353

5454
import org.apache.qpid.server.configuration.IllegalConfigurationException;
@@ -63,16 +63,15 @@
6363
import org.apache.qpid.server.model.KeyStore;
6464
import org.apache.qpid.test.utils.tls.KeyCertificatePair;
6565
import org.apache.qpid.test.utils.tls.TlsResource;
66+
import org.apache.qpid.test.utils.tls.TlsResourceExtension;
6667
import org.apache.qpid.test.utils.tls.TlsResourceBuilder;
68+
import org.apache.qpid.test.utils.tls.PemUtils;
6769
import org.apache.qpid.server.util.DataUrlUtils;
6870
import org.apache.qpid.test.utils.UnitTestBase;
69-
import org.apache.qpid.test.utils.tls.TlsResourceHelper;
7071

72+
@ExtendWith({ TlsResourceExtension.class })
7173
public class NonJavaKeyStoreTest extends UnitTestBase
7274
{
73-
@RegisterExtension
74-
public static final TlsResource TLS_RESOURCE = new TlsResource();
75-
7675
private static final String DN_FOO = "CN=foo";
7776
private static final String NAME = "myTestTrustStore";
7877
private static final String NON_JAVA_KEY_STORE = "NonJavaKeyStore";
@@ -91,18 +90,18 @@ public void setUp() throws Exception
9190
}
9291

9392
@Test
94-
void testCreationOfTrustStoreFromValidPrivateKeyAndCertificateInDERFormat() throws Exception
93+
void testCreationOfTrustStoreFromValidPrivateKeyAndCertificateInDERFormat(final TlsResource tls) throws Exception
9594
{
96-
final Path privateKeyFile = TLS_RESOURCE.savePrivateKeyAsDer(_keyCertPair.getPrivateKey());
97-
final Path certificateFile = TLS_RESOURCE.saveCertificateAsDer(_keyCertPair.getCertificate());
95+
final Path privateKeyFile = tls.savePrivateKeyAsDer(_keyCertPair.privateKey());
96+
final Path certificateFile = tls.saveCertificateAsDer(_keyCertPair.certificate());
9897
assertCreationOfTrustStoreFromValidPrivateKeyAndCertificate(privateKeyFile, certificateFile);
9998
}
10099

101100
@Test
102-
void testCreationOfTrustStoreFromValidPrivateKeyAndCertificateInPEMFormat() throws Exception
101+
void testCreationOfTrustStoreFromValidPrivateKeyAndCertificateInPEMFormat(final TlsResource tls) throws Exception
103102
{
104-
final Path privateKeyFile = TLS_RESOURCE.savePrivateKeyAsPem(_keyCertPair.getPrivateKey());
105-
final Path certificateFile = TLS_RESOURCE.saveCertificateAsPem(_keyCertPair.getCertificate());
103+
final Path privateKeyFile = tls.savePrivateKeyAsPem(_keyCertPair.privateKey());
104+
final Path certificateFile = tls.saveCertificateAsPem(_keyCertPair.certificate());
106105
assertCreationOfTrustStoreFromValidPrivateKeyAndCertificate(privateKeyFile, certificateFile);
107106
}
108107

@@ -121,10 +120,10 @@ private void assertCreationOfTrustStoreFromValidPrivateKeyAndCertificate(Path pr
121120
}
122121

123122
@Test
124-
void testCreationOfTrustStoreFromValidPrivateKeyAndInvalidCertificate()throws Exception
123+
void testCreationOfTrustStoreFromValidPrivateKeyAndInvalidCertificate(final TlsResource tls) throws Exception
125124
{
126-
final Path privateKeyFile = TLS_RESOURCE.savePrivateKeyAsPem(_keyCertPair.getPrivateKey());
127-
final Path certificateFile = TLS_RESOURCE.createFile(".cer");
125+
final Path privateKeyFile = tls.savePrivateKeyAsPem(_keyCertPair.privateKey());
126+
final Path certificateFile = tls.createFile(".cer");
128127
final Map<String,Object> attributes = Map.of(NonJavaKeyStore.NAME, NAME,
129128
"privateKeyUrl", privateKeyFile.toFile().getAbsolutePath(),
130129
"certificateUrl", certificateFile.toFile().getAbsolutePath(),
@@ -135,10 +134,10 @@ void testCreationOfTrustStoreFromValidPrivateKeyAndInvalidCertificate()throws Ex
135134
}
136135

137136
@Test
138-
void testCreationOfTrustStoreFromInvalidPrivateKeyAndValidCertificate()throws Exception
137+
void testCreationOfTrustStoreFromInvalidPrivateKeyAndValidCertificate(final TlsResource tls) throws Exception
139138
{
140-
final Path privateKeyFile = TLS_RESOURCE.createFile(".pk");
141-
final Path certificateFile = TLS_RESOURCE.saveCertificateAsPem(_keyCertPair.getCertificate());
139+
final Path privateKeyFile = tls.createFile(".pk");
140+
final Path certificateFile = tls.saveCertificateAsPem(_keyCertPair.certificate());
142141
final Map<String,Object> attributes = Map.of(NonJavaKeyStore.NAME, NAME,
143142
"privateKeyUrl", privateKeyFile.toFile().getAbsolutePath(),
144143
"certificateUrl", certificateFile.toFile().getAbsolutePath(),
@@ -150,27 +149,27 @@ void testCreationOfTrustStoreFromInvalidPrivateKeyAndValidCertificate()throws Ex
150149
}
151150

152151
@Test
153-
void testExpiryCheckingFindsExpired() throws Exception
152+
void testExpiryCheckingFindsExpired(final TlsResource tls) throws Exception
154153
{
155-
doCertExpiryChecking(1);
154+
doCertExpiryChecking(tls, 1);
156155
verify(_messageLogger, times(1)).message(argThat(new LogMessageArgumentMatcher()));
157156
}
158157

159158
@Test
160-
void testExpiryCheckingIgnoresValid() throws Exception
159+
void testExpiryCheckingIgnoresValid(final TlsResource tls) throws Exception
161160
{
162-
doCertExpiryChecking(-1);
161+
doCertExpiryChecking(tls, -1);
163162
verify(_messageLogger, never()).message(argThat(new LogMessageArgumentMatcher()));
164163
}
165164

166165
@SuppressWarnings("unchecked")
167-
private void doCertExpiryChecking(final int expiryOffset) throws Exception
166+
private void doCertExpiryChecking(final TlsResource tls, final int expiryOffset) throws Exception
168167
{
169168
when(BROKER.scheduleHouseKeepingTask(anyLong(), any(TimeUnit.class), any(Runnable.class))).thenReturn(mock(ScheduledFuture.class));
170169

171-
final Path privateKeyFile = TLS_RESOURCE.savePrivateKeyAsDer(_keyCertPair.getPrivateKey());
172-
final Path certificateFile = TLS_RESOURCE.saveCertificateAsDer(_keyCertPair.getCertificate());
173-
final long expiryDays = ChronoUnit.DAYS.between(Instant.now(), _keyCertPair.getCertificate().getNotAfter().toInstant());
170+
final Path privateKeyFile = tls.savePrivateKeyAsDer(_keyCertPair.privateKey());
171+
final Path certificateFile = tls.saveCertificateAsDer(_keyCertPair.certificate());
172+
final long expiryDays = ChronoUnit.DAYS.between(Instant.now(), _keyCertPair.certificate().getNotAfter().toInstant());
174173
final Map<String,Object> attributes = Map.of(NonJavaKeyStore.NAME, NAME,
175174
"privateKeyUrl", privateKeyFile.toFile().getAbsolutePath(),
176175
"certificateUrl", certificateFile.toFile().getAbsolutePath(),
@@ -184,8 +183,8 @@ void testCreationOfKeyStoreWithNonMatchingPrivateKeyAndCertificate()throws Excep
184183
{
185184
final KeyCertificatePair keyCertPair2 = generateSelfSignedCertificate();
186185
final Map<String,Object> attributes = Map.of(NonJavaKeyStore.NAME, NAME,
187-
NonJavaKeyStore.PRIVATE_KEY_URL, getPrivateKeyAsDataUrl(_keyCertPair.getPrivateKey()),
188-
NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(keyCertPair2.getCertificate()),
186+
NonJavaKeyStore.PRIVATE_KEY_URL, getPrivateKeyAsDataUrl(_keyCertPair.privateKey()),
187+
NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(keyCertPair2.certificate()),
189188
NonJavaKeyStore.TYPE, NON_JAVA_KEY_STORE);
190189

191190
KeyStoreTestHelper.checkExceptionThrownDuringKeyStoreCreation(FACTORY, BROKER, KeyStore.class, attributes,
@@ -196,12 +195,12 @@ NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(keyCertPair2.getCertifi
196195
void testUpdateKeyStoreToNonMatchingCertificate()throws Exception
197196
{
198197
final Map<String,Object> attributes = Map.of(NonJavaKeyStore.NAME, getTestName(),
199-
NonJavaKeyStore.PRIVATE_KEY_URL, getPrivateKeyAsDataUrl(_keyCertPair.getPrivateKey()),
200-
NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(_keyCertPair.getCertificate()),
198+
NonJavaKeyStore.PRIVATE_KEY_URL, getPrivateKeyAsDataUrl(_keyCertPair.privateKey()),
199+
NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(_keyCertPair.certificate()),
201200
NonJavaKeyStore.TYPE, NON_JAVA_KEY_STORE);
202201
final KeyStore<?> trustStore = createTestKeyStore(attributes);
203202
final KeyCertificatePair keyCertPair2 = generateSelfSignedCertificate();
204-
final String certUrl = getCertificateAsDataUrl(keyCertPair2.getCertificate());
203+
final String certUrl = getCertificateAsDataUrl(keyCertPair2.certificate());
205204
final Map<String,Object> newAttributes = Map.of("certificateUrl", certUrl);
206205

207206
assertThrows(IllegalConfigurationException.class, () -> trustStore.setAttributes(newAttributes),
@@ -212,8 +211,8 @@ NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(_keyCertPair.getCertifi
212211
void privateKeyEntryCertificate() throws Exception
213212
{
214213
final Map<String,Object> attributes = Map.of(NonJavaKeyStore.NAME, getTestName(),
215-
NonJavaKeyStore.PRIVATE_KEY_URL, getPrivateKeyAsDataUrl(_keyCertPair.getPrivateKey()),
216-
NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(_keyCertPair.getCertificate()),
214+
NonJavaKeyStore.PRIVATE_KEY_URL, getPrivateKeyAsDataUrl(_keyCertPair.privateKey()),
215+
NonJavaKeyStore.CERTIFICATE_URL, getCertificateAsDataUrl(_keyCertPair.certificate()),
217216
NonJavaKeyStore.TYPE, NON_JAVA_KEY_STORE);
218217
final KeyStore<?> keyStore = createTestKeyStore(attributes);
219218
final List<CertificateDetails> certificateDetails = keyStore.getCertificateDetails();
@@ -229,12 +228,12 @@ private KeyStore<?> createTestKeyStore(final Map<String, Object> attributes)
229228

230229
private String getCertificateAsDataUrl(final X509Certificate certificate) throws CertificateEncodingException
231230
{
232-
return DataUrlUtils.getDataUrlForBytes(TlsResourceHelper.toPEM(certificate).getBytes(UTF_8));
231+
return DataUrlUtils.getDataUrlForBytes(PemUtils.toPEM(certificate).getBytes(UTF_8));
233232
}
234233

235234
private String getPrivateKeyAsDataUrl(final PrivateKey privateKey)
236235
{
237-
return DataUrlUtils.getDataUrlForBytes(TlsResourceHelper.toPEM(privateKey).getBytes(UTF_8));
236+
return DataUrlUtils.getDataUrlForBytes(PemUtils.toPEM(privateKey).getBytes(UTF_8));
238237
}
239238

240239
private KeyCertificatePair generateSelfSignedCertificate() throws Exception

broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@
3737
import javax.net.ssl.X509TrustManager;
3838

3939
import org.junit.jupiter.api.Test;
40-
41-
import org.junit.jupiter.api.extension.RegisterExtension;
40+
import org.junit.jupiter.api.extension.ExtendWith;
4241

4342
import org.apache.qpid.server.configuration.IllegalConfigurationException;
4443
import org.apache.qpid.server.model.Broker;
@@ -49,13 +48,12 @@
4948
import org.apache.qpid.test.utils.tls.KeyCertificatePair;
5049
import org.apache.qpid.test.utils.tls.TlsResource;
5150
import org.apache.qpid.test.utils.tls.TlsResourceBuilder;
51+
import org.apache.qpid.test.utils.tls.TlsResourceExtension;
5252
import org.apache.qpid.test.utils.UnitTestBase;
5353

54+
@ExtendWith({ TlsResourceExtension.class })
5455
public class NonJavaTrustStoreTest extends UnitTestBase
5556
{
56-
@RegisterExtension
57-
public static final TlsResource TLS_RESOURCE = new TlsResource();
58-
5957
private static final Broker<?> BROKER = BrokerTestHelper.createBrokerMock();
6058
private static final ConfiguredObjectFactory FACTORY = BrokerModel.getInstance().getObjectFactory();
6159
private static final String NAME = "myTestTrustStore";
@@ -66,10 +64,10 @@ public class NonJavaTrustStoreTest extends UnitTestBase
6664
private static final String NOT_A_CRL = "/not/a/crl";
6765

6866
@Test
69-
public void testCreationOfTrustStoreWithoutCRL() throws Exception
67+
public void testCreationOfTrustStoreWithoutCRL(final TlsResource tls) throws Exception
7068
{
7169
final KeyCertificatePair keyCertPair = TlsResourceBuilder.createSelfSigned(DN_FOO);
72-
final Path certificateFile = TLS_RESOURCE.saveCertificateAsPem(keyCertPair.getCertificate());
70+
final Path certificateFile = tls.saveCertificateAsPem(keyCertPair.certificate());
7371
final Map<String, Object> attributes = Map.of(NonJavaTrustStore.NAME, NAME,
7472
NonJavaTrustStore.CERTIFICATES_URL, certificateFile.toFile().getAbsolutePath(),
7573
NonJavaTrustStore.TYPE, NON_JAVA_TRUST_STORE,
@@ -83,9 +81,9 @@ public void testCreationOfTrustStoreWithoutCRL() throws Exception
8381
}
8482

8583
@Test
86-
public void testCreationOfTrustStoreFromValidCertificate() throws Exception
84+
public void testCreationOfTrustStoreFromValidCertificate(final TlsResource tls) throws Exception
8785
{
88-
final CertificateAndCrl<File> data = generateCertificateAndCrl();
86+
final CertificateAndCrl<File> data = generateCertificateAndCrl(tls);
8987
final Map<String, Object> attributes = Map.of(NonJavaTrustStore.NAME, NAME,
9088
NonJavaTrustStore.CERTIFICATES_URL, data.getCertificate().getAbsolutePath(),
9189
NonJavaTrustStore.TYPE, NON_JAVA_TRUST_STORE,
@@ -100,9 +98,9 @@ public void testCreationOfTrustStoreFromValidCertificate() throws Exception
10098
}
10199

102100
@Test
103-
public void testChangeOfCrlInTrustStoreFromValidCertificate() throws Exception
101+
public void testChangeOfCrlInTrustStoreFromValidCertificate(final TlsResource tls) throws Exception
104102
{
105-
final CertificateAndCrl<File> data = generateCertificateAndCrl();
103+
final CertificateAndCrl<File> data = generateCertificateAndCrl(tls);
106104
final Map<String, Object> attributes = Map.of(NonJavaTrustStore.NAME, NAME,
107105
NonJavaTrustStore.CERTIFICATES_URL, data.getCertificate().getAbsolutePath(),
108106
NonJavaTrustStore.TYPE, NON_JAVA_TRUST_STORE,
@@ -119,18 +117,18 @@ public void testChangeOfCrlInTrustStoreFromValidCertificate() throws Exception
119117
assertEquals(data.getCrl().getAbsolutePath(), trustStore.getCertificateRevocationListUrl(),
120118
"Unexpected CRL path value after failed change");
121119

122-
final Path emptyCrl = TLS_RESOURCE.createCrl(data.getCa());
120+
final Path emptyCrl = tls.createCrl(data.getCa());
123121
trustStore.setAttributes(Map.of(FileTrustStore.CERTIFICATE_REVOCATION_LIST_URL, emptyCrl.toFile().getAbsolutePath()));
124122

125123
assertEquals(emptyCrl.toFile().getAbsolutePath(), trustStore.getCertificateRevocationListUrl(),
126124
"Unexpected CRL path value after change that is expected to be successful");
127125
}
128126

129127
@Test
130-
public void testUseOfExpiredTrustAnchorDenied() throws Exception
128+
public void testUseOfExpiredTrustAnchorDenied(final TlsResource tls) throws Exception
131129
{
132130
final KeyCertificatePair keyCertPair = createExpiredCertificate();
133-
final Path certificatePath = TLS_RESOURCE.saveCertificateAsPem(keyCertPair.getCertificate());
131+
final Path certificatePath = tls.saveCertificateAsPem(keyCertPair.certificate());
134132
final Map<String, Object> attributes = Map.of(NonJavaTrustStore.NAME, NAME,
135133
NonJavaTrustStore.TRUST_ANCHOR_VALIDITY_ENFORCED, true,
136134
NonJavaTrustStore.CERTIFICATES_URL, certificatePath.toFile().getAbsolutePath(),
@@ -146,17 +144,17 @@ public void testUseOfExpiredTrustAnchorDenied() throws Exception
146144
final X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
147145

148146
final CertificateException thrown = assertThrows(CertificateException.class,
149-
() -> trustManager.checkClientTrusted(new X509Certificate[]{keyCertPair.getCertificate()}, "NULL"),
147+
() -> trustManager.checkClientTrusted(new X509Certificate[]{keyCertPair.certificate()}, "NULL"),
150148
"Exception not thrown");
151149

152150
// IBMJSSE2 does not throw CertificateExpiredException, it throws a CertificateException
153151
assertTrue(thrown instanceof CertificateExpiredException || "Certificate expired".equals(thrown.getMessage()));
154152
}
155153

156154
@Test
157-
public void testCreationOfTrustStoreWithoutCertificate() throws Exception
155+
public void testCreationOfTrustStoreWithoutCertificate(final TlsResource tls) throws Exception
158156
{
159-
final CertificateAndCrl<File> data = generateCertificateAndCrl();
157+
final CertificateAndCrl<File> data = generateCertificateAndCrl(tls);
160158
final Map<String, Object> attributes = Map.of(
161159
NonJavaTrustStore.NAME, NAME,
162160
NonJavaTrustStore.CERTIFICATES_URL, data.getCrl().getAbsolutePath(),
@@ -167,10 +165,10 @@ public void testCreationOfTrustStoreWithoutCertificate() throws Exception
167165
}
168166

169167
@Test
170-
public void testCreationOfTrustStoreFromValidCertificate_MissingCrlFile() throws Exception
168+
public void testCreationOfTrustStoreFromValidCertificate_MissingCrlFile(final TlsResource tls) throws Exception
171169
{
172170
final KeyCertificatePair keyCertPair = TlsResourceBuilder.createSelfSigned(DN_FOO);
173-
final Path certificateFile = TLS_RESOURCE.saveCertificateAsPem(keyCertPair.getCertificate());
171+
final Path certificateFile = tls.saveCertificateAsPem(keyCertPair.certificate());
174172
final Map<String, Object> attributes = Map.of(NonJavaTrustStore.NAME, NAME,
175173
NonJavaTrustStore.CERTIFICATES_URL, certificateFile.toFile().getAbsolutePath(),
176174
NonJavaTrustStore.TYPE, NON_JAVA_TRUST_STORE,
@@ -194,14 +192,14 @@ private NonJavaTrustStore<?> createTestTrustStore(final Map<String, Object> attr
194192
return (NonJavaTrustStore<?>) FACTORY.create(TrustStore.class, attributes, BROKER);
195193
}
196194

197-
private CertificateAndCrl<File> generateCertificateAndCrl() throws Exception
195+
private CertificateAndCrl<File> generateCertificateAndCrl(final TlsResource tls) throws Exception
198196
{
199197
final KeyCertificatePair caPair = TlsResourceBuilder.createKeyPairAndRootCA(DN_CA);
200198
final KeyCertificatePair keyCertPair1 = TlsResourceBuilder.createKeyPairAndCertificate(DN_FOO, caPair);
201199
final KeyCertificatePair keyCertPair2 = TlsResourceBuilder.createKeyPairAndCertificate(DN_BAR, caPair);
202200
final Path clrFile =
203-
TLS_RESOURCE.createCrl(caPair, keyCertPair1.getCertificate(), keyCertPair2.getCertificate());
204-
final Path caCertificateFile = TLS_RESOURCE.saveCertificateAsPem(caPair.getCertificate());
201+
tls.createCrl(caPair, keyCertPair1.certificate(), keyCertPair2.certificate());
202+
final Path caCertificateFile = tls.saveCertificateAsPem(caPair.certificate());
205203
return new CertificateAndCrl<>(caCertificateFile.toFile(), clrFile.toFile(), caPair);
206204
}
207205

0 commit comments

Comments
 (0)