4747
4848import org .junit .jupiter .api .BeforeEach ;
4949import org .junit .jupiter .api .Test ;
50+ import org .junit .jupiter .api .extension .ExtendWith ;
5051
51- import org .junit .jupiter .api .extension .RegisterExtension ;
5252import org .mockito .ArgumentMatcher ;
5353
5454import org .apache .qpid .server .configuration .IllegalConfigurationException ;
6363import org .apache .qpid .server .model .KeyStore ;
6464import org .apache .qpid .test .utils .tls .KeyCertificatePair ;
6565import org .apache .qpid .test .utils .tls .TlsResource ;
66+ import org .apache .qpid .test .utils .tls .TlsResourceExtension ;
6667import org .apache .qpid .test .utils .tls .TlsResourceBuilder ;
68+ import org .apache .qpid .test .utils .tls .PemUtils ;
6769import org .apache .qpid .server .util .DataUrlUtils ;
6870import org .apache .qpid .test .utils .UnitTestBase ;
69- import org .apache .qpid .test .utils .tls .TlsResourceHelper ;
7071
72+ @ ExtendWith ({ TlsResourceExtension .class })
7173public 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
0 commit comments