in jaas/jaas-config/src/main/java/org/apache/servicemix/kernel/jaas/config/impl/ResourceKeystoreInstance.java [243:287]
private boolean loadKeystoreData() {
// Check to reload the data if needed
if (keystoreFile != null && keystoreReadDate >= keystoreFile.lastModified()) {
return true;
}
// If not a file, just not reload the data if it has already been loaded
if (keystoreFile == null && keystore != null) {
return true;
}
// Check if the file is invalid
if (keystoreFile != null && (!keystoreFile.exists() || !keystoreFile.canRead())) {
throw new IllegalArgumentException("Invalid keystore file (" + path + " = " + keystoreFile.getAbsolutePath() + ")");
}
// Load the keystore data
try {
keystoreReadDate = System.currentTimeMillis();
privateKeys.clear();
trustCerts.clear();
if (keystore == null) {
keystore = KeyStore.getInstance(JKS);
}
InputStream in = new BufferedInputStream(path.getInputStream());
keystore.load(in, keystorePassword == null ? new char[0] : keystorePassword.toCharArray());
in.close();
Enumeration aliases = keystore.aliases();
while (aliases.hasMoreElements()) {
String alias = (String) aliases.nextElement();
if (keystore.isKeyEntry(alias)) {
privateKeys.add(alias);
} else if (keystore.isCertificateEntry(alias)) {
trustCerts.add(alias);
}
}
return true;
} catch (KeyStoreException e) {
LOG.error("Unable to open keystore with provided password", e);
} catch (IOException e) {
LOG.error("Unable to open keystore with provided password", e);
} catch (NoSuchAlgorithmException e) {
LOG.error("Unable to open keystore with provided password", e);
} catch (CertificateException e) {
LOG.error("Unable to open keystore with provided password", e);
}
return false;
}