You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2019/06/20 16:15:00 UTC

[directory-server] branch master updated: Close streams when loading/storing key store (fix tests on Windows)

This is an automated email from the ASF dual-hosted git repository.

seelmann pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-server.git


The following commit(s) were added to refs/heads/master by this push:
     new 177dc93  Close streams when loading/storing key store (fix tests on Windows)
177dc93 is described below

commit 177dc93375dae0668a3427699f506487c896262e
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
AuthorDate: Thu Jun 20 18:04:06 2019 +0200

    Close streams when loading/storing key store (fix tests on Windows)
---
 .../directory/server/core/security/CertificateUtil.java   |  6 ++++--
 .../shared/client/api/CertificateValidationTest.java      |  5 ++++-
 .../sasl/external/ClientCertificateAuthenticationIT.java  |  6 ++++--
 .../java/org/apache/directory/server/ssl/KeyStoreIT.java  | 15 ++++++++++++---
 .../java/org/apache/directory/server/ApacheDsService.java |  6 ++++--
 .../java/org/apache/directory/server/UberJarMainTest.java |  6 ++++--
 .../directory/server/core/integ/AbstractLdapTestUnit.java |  6 ++++--
 7 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/core/src/main/java/org/apache/directory/server/core/security/CertificateUtil.java b/core/src/main/java/org/apache/directory/server/core/security/CertificateUtil.java
index 3948883..d11be0f 100644
--- a/core/src/main/java/org/apache/directory/server/core/security/CertificateUtil.java
+++ b/core/src/main/java/org/apache/directory/server/core/security/CertificateUtil.java
@@ -339,8 +339,10 @@ public final class CertificateUtil
         
         keyStore.setKeyEntry( "apachedsKey", keyPair.getPrivate(), keyStorePassword, new X509Certificate[] { certificate } );
         
-        FileOutputStream out = new FileOutputStream( keyStoreFile );
-        keyStore.store( out, keyStorePassword );
+        try ( FileOutputStream out = new FileOutputStream( keyStoreFile ) )
+        {
+            keyStore.store( out, keyStorePassword );
+        }
         
         return keyStoreFile;
     }
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/CertificateValidationTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/CertificateValidationTest.java
index b64a346..1d8645d 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/CertificateValidationTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/CertificateValidationTest.java
@@ -158,7 +158,10 @@ public class CertificateValidationTest extends AbstractLdapTestUnit
         keyStore.setCertificateEntry( "apacheds", cert );
         keyStore.setKeyEntry( "apacheds", keyPair.getPrivate(), KEYSTORE_PW.toCharArray(), new Certificate[]
             { cert } );
-        keyStore.store( new FileOutputStream( goodKeyStoreFile ), KEYSTORE_PW.toCharArray() );
+        try ( FileOutputStream out = new FileOutputStream( goodKeyStoreFile ) )
+        {
+            keyStore.store( out, KEYSTORE_PW.toCharArray() );
+        }
         return keyStore;
     }
 
diff --git a/server-integ/src/test/java/org/apache/directory/server/ldap/handlers/sasl/external/ClientCertificateAuthenticationIT.java b/server-integ/src/test/java/org/apache/directory/server/ldap/handlers/sasl/external/ClientCertificateAuthenticationIT.java
index 50d175f..96d2f06 100644
--- a/server-integ/src/test/java/org/apache/directory/server/ldap/handlers/sasl/external/ClientCertificateAuthenticationIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/ldap/handlers/sasl/external/ClientCertificateAuthenticationIT.java
@@ -139,14 +139,16 @@ public class ClientCertificateAuthenticationIT extends AbstractLdapTestUnit
             TlsKeyGenerator.addKeyPair( entry, issuerDn, subjectDn, startDate, expiryDate, keyAlgo, keySize, null );
 
             // prepare socket factory to provide client certificate
-            try ( ByteArrayInputStream in = new ByteArrayInputStream( TlsKeyGenerator.getCertificate( entry ).getEncoded() ) )
+            try (
+                ByteArrayInputStream in = new ByteArrayInputStream( TlsKeyGenerator.getCertificate( entry ).getEncoded() );
+                FileOutputStream out = new FileOutputStream( ClientCertificateSslSocketFactory.ksFile ) )
             {
                 CertificateFactory factory = CertificateFactory.getInstance( "X.509" );
                 Certificate cert = factory.generateCertificate( in );
                 KeyStore ks = KeyStore.getInstance( KeyStore.getDefaultType() );
                 ks.load( null, null );
                 ks.setKeyEntry("apacheds", TlsKeyGenerator.getKeyPair( entry ).getPrivate(), ClientCertificateSslSocketFactory.ksPassword, new Certificate[] { cert } );
-                ks.store( new FileOutputStream( ClientCertificateSslSocketFactory.ksFile ), ClientCertificateSslSocketFactory.ksPassword );
+                ks.store( out, ClientCertificateSslSocketFactory.ksPassword );
             }
 
             // set certificte to testuser
diff --git a/server-integ/src/test/java/org/apache/directory/server/ssl/KeyStoreIT.java b/server-integ/src/test/java/org/apache/directory/server/ssl/KeyStoreIT.java
index 01bb016..1fc936b 100644
--- a/server-integ/src/test/java/org/apache/directory/server/ssl/KeyStoreIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/ssl/KeyStoreIT.java
@@ -89,7 +89,10 @@ public class KeyStoreIT extends AbstractLdapTestUnit
         goodKeyStore.setCertificateEntry( "apacheds", cert );
         goodKeyStore.setKeyEntry( "apacheds", keyPair.getPrivate(), KEYSTORE_PW.toCharArray(), new Certificate[]
             { cert } );
-        goodKeyStore.store( new FileOutputStream( goodKeyStoreFile ), KEYSTORE_PW.toCharArray() );
+        try ( FileOutputStream out = new FileOutputStream( goodKeyStoreFile ) )
+        {
+            goodKeyStore.store( out, KEYSTORE_PW.toCharArray() );
+        }
 
         // Create the empty key store
         File emptyKeyStoreFile = new File( BAD_KEYSTORE_WITH_ZERO_ENTRIES );
@@ -99,7 +102,10 @@ public class KeyStoreIT extends AbstractLdapTestUnit
         }
         KeyStore emptyKeyStore = KeyStore.getInstance( KeyStore.getDefaultType() );
         emptyKeyStore.load( null, null );
-        emptyKeyStore.store( new FileOutputStream( emptyKeyStoreFile ), KEYSTORE_PW.toCharArray() );
+        try ( FileOutputStream out = new FileOutputStream( emptyKeyStoreFile ) )
+        {
+            emptyKeyStore.store( new FileOutputStream( emptyKeyStoreFile ), KEYSTORE_PW.toCharArray() );
+        }
 
         // Create the bad key store with two entries
         File twoEntiesKeyStoreFile = new File( BAD_KEYSTORE_WITH_TWO_ENTRIES );
@@ -112,7 +118,10 @@ public class KeyStoreIT extends AbstractLdapTestUnit
         twoEntiesKeyStore.setCertificateEntry( "foo123", cert );
         twoEntiesKeyStore.setKeyEntry( "apacheds", keyPair.getPrivate(), KEYSTORE_PW.toCharArray(), new Certificate[]
             { cert } );
-        twoEntiesKeyStore.store( new FileOutputStream( twoEntiesKeyStoreFile ), KEYSTORE_PW.toCharArray() );
+        try ( FileOutputStream out = new FileOutputStream( twoEntiesKeyStoreFile ) )
+        {
+            twoEntiesKeyStore.store( out, KEYSTORE_PW.toCharArray() );
+        }
     }
 
 
diff --git a/service/src/main/java/org/apache/directory/server/ApacheDsService.java b/service/src/main/java/org/apache/directory/server/ApacheDsService.java
index c14cf64..bbd7b03 100644
--- a/service/src/main/java/org/apache/directory/server/ApacheDsService.java
+++ b/service/src/main/java/org/apache/directory/server/ApacheDsService.java
@@ -249,8 +249,10 @@ public class ApacheDsService
                 
                 keyStore.setKeyEntry( "apachedsKey", keyPair.getPrivate(), keyStorePassword, new X509Certificate[] { certificate } );
                 
-                FileOutputStream out = new FileOutputStream( ldapServerKeystoreFile );
-                keyStore.store( out, keyStorePassword );
+                try ( FileOutputStream out = new FileOutputStream( ldapServerKeystoreFile ) )
+                {
+                    keyStore.store( out, keyStorePassword );
+                }
             }
             
             ldapServerBean.setLdapServerKeystoreFile( ldapServerKeystoreFile.getAbsolutePath() );
diff --git a/service/src/test/java/org/apache/directory/server/UberJarMainTest.java b/service/src/test/java/org/apache/directory/server/UberJarMainTest.java
index a793853..625b780 100644
--- a/service/src/test/java/org/apache/directory/server/UberJarMainTest.java
+++ b/service/src/test/java/org/apache/directory/server/UberJarMainTest.java
@@ -120,8 +120,10 @@ public class UberJarMainTest
             
             keyStore.setKeyEntry( "apachedsKey", keyPair.getPrivate(), keyStorePassword, new X509Certificate[] { certificate } );
             
-            FileOutputStream out = new FileOutputStream( keyStoreFile );
-            keyStore.store( out, keyStorePassword );
+            try ( FileOutputStream out = new FileOutputStream( keyStoreFile ) )
+            {
+                keyStore.store( out, keyStorePassword );
+            }
         }
         catch ( Exception e )
         {
diff --git a/test-framework/src/main/java/org/apache/directory/server/core/integ/AbstractLdapTestUnit.java b/test-framework/src/main/java/org/apache/directory/server/core/integ/AbstractLdapTestUnit.java
index ffa4fe6..9d290c6 100644
--- a/test-framework/src/main/java/org/apache/directory/server/core/integ/AbstractLdapTestUnit.java
+++ b/test-framework/src/main/java/org/apache/directory/server/core/integ/AbstractLdapTestUnit.java
@@ -116,7 +116,9 @@ public abstract class AbstractLdapTestUnit
         
         keyStore.setKeyEntry( "apachedsKey", keyPair.getPrivate(), keyStorePassword, new X509Certificate[] { certificate } );
         
-        FileOutputStream out = new FileOutputStream( keyStoreFile );
-        keyStore.store( out, keyStorePassword );
+        try ( FileOutputStream out = new FileOutputStream( keyStoreFile ) )
+        {
+            keyStore.store( out, keyStorePassword );
+        }
     }
 }