[SM-2153]PropertiesLoginModule always leave file handler open
git-svn-id: https://svn.apache.org/repos/asf/servicemix/smx3/trunk@1338031 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java
index 8227a7e..091a7d1 100644
--- a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java
+++ b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/CertificatesLoginModule.java
@@ -18,6 +18,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.security.Principal;
import java.security.cert.X509Certificate;
import java.util.Enumeration;
@@ -84,16 +85,37 @@
public boolean login() throws LoginException {
File f = new File(baseDir, usersFile);
+ InputStream fis = null;
try {
- users.load(new java.io.FileInputStream(f));
+ fis = new java.io.FileInputStream(f);
+ users.load(fis);
} catch (IOException ioe) {
throw new LoginException("Unable to load user properties file " + f);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ fis = null;
+ } catch (IOException e) {
+ throw new LoginException("Unable to close user properties file " + f);
+ }
+ }
}
f = new File(baseDir, groupsFile);
try {
- groups.load(new java.io.FileInputStream(f));
+ fis = new java.io.FileInputStream(f);
+ groups.load(fis);
} catch (IOException ioe) {
throw new LoginException("Unable to load group properties file " + f);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ fis = null;
+ } catch (IOException e) {
+ throw new LoginException("Unable to close group properties file " + f);
+ }
+ }
}
Callback[] callbacks = new Callback[1];
diff --git a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java
index d5a4c68..18d4dce 100644
--- a/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java
+++ b/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/login/PropertiesLoginModule.java
@@ -18,6 +18,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Map;
@@ -82,16 +83,37 @@
public boolean login() throws LoginException {
File f = new File(baseDir, usersFile);
+ InputStream fis = null;
try {
- users.load(new java.io.FileInputStream(f));
+ fis = new java.io.FileInputStream(f);
+ users.load(fis);
} catch (IOException ioe) {
throw new LoginException("Unable to load user properties file " + f);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ fis = null;
+ } catch (IOException e) {
+ throw new LoginException("Unable to close user properties file " + f);
+ }
+ }
}
f = new File(baseDir, groupsFile);
try {
- groups.load(new java.io.FileInputStream(f));
+ fis = new java.io.FileInputStream(f);
+ groups.load(fis);
} catch (IOException ioe) {
throw new LoginException("Unable to load group properties file " + f);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ fis = null;
+ } catch (IOException e) {
+ throw new LoginException("Unable to close group properties file " + f);
+ }
+ }
}
Callback[] callbacks = new Callback[2];