[jboss-svn-commits] JBossWS SVN: r878 - trunk/src/main/java/org/jboss/ws/wsse
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 1 05:23:26 EDT 2006
Author: thomas.diesler at jboss.com
Date: 2006-09-01 05:23:24 -0400 (Fri, 01 Sep 2006)
New Revision: 878
Modified:
trunk/src/main/java/org/jboss/ws/wsse/SecurityStore.java
Log:
Error handling, debugging
Modified: trunk/src/main/java/org/jboss/ws/wsse/SecurityStore.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/wsse/SecurityStore.java 2006-09-01 09:11:50 UTC (rev 877)
+++ trunk/src/main/java/org/jboss/ws/wsse/SecurityStore.java 2006-09-01 09:23:24 UTC (rev 878)
@@ -21,6 +21,8 @@
*/
package org.jboss.ws.wsse;
+// $Id: $
+
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
@@ -129,28 +131,51 @@
if (storeType == null)
storeType = "jks";
- storePassword = getPassword(storePassword);
+ KeyStore keyStore = null;
try
{
log.debug("loadStore: " + storeURL);
InputStream stream = storeURL.openStream();
- KeyStore keyStore = KeyStore.getInstance(storeType);
- keyStore.load(stream, storePassword.toCharArray());
-
- return keyStore;
+ if (stream == null)
+ throw new WSSecurityException("Cannot load store from: " + storeURL);
+
+ keyStore = KeyStore.getInstance(storeType);
+ if (keyStore == null)
+ throw new WSSecurityException("Cannot get keystore for type: " + storeType);
+
+ String decryptedPassword = decryptPassword(storePassword);
+ if (decryptedPassword == null)
+ throw new WSSecurityException("Cannot decrypt store password");
+
+ keyStore.load(stream, decryptedPassword.toCharArray());
}
- catch (Exception e)
+ catch (RuntimeException rte)
{
- throw new WSSecurityException("Problems loading " + type + ": " + e.getMessage(), e);
+ throw rte;
}
+ catch (WSSecurityException ex)
+ {
+ throw ex;
+ }
+ catch (Exception ex)
+ {
+ throw new WSSecurityException("Problems loading " + type + ": " + ex.getMessage(), ex);
+ }
+
+ return keyStore;
}
/**
* This method examines the password for the presence of a encryption algorithm, if found
* decrypts and returns the password, else returns the password as is.
*/
- private String getPassword(String password) throws WSSecurityException
+ private String decryptPassword(String password) throws WSSecurityException
{
+ log.trace("decrypt password: " + password);
+
+ if (password == null)
+ throw new WSSecurityException("Invalid null password for security store");
+
if (password.charAt(0) == '{')
{
StringTokenizer tokenizer = new StringTokenizer(password, "{}");
@@ -169,7 +194,10 @@
throw new WSSecurityException("Unknown keyStorePasswordCmdType: " + keyStorePasswordCmdType);
}
}
-
+ if (password == null)
+ throw new WSSecurityException("Cannot decrypt password, result is null");
+
+ log.trace("decrypted password: " + password);
return password;
}
@@ -361,7 +389,7 @@
PrivateKey key;
try
{
- key = (PrivateKey)keyStore.getKey(alias, getPassword(keyStorePassword).toCharArray());
+ key = (PrivateKey)keyStore.getKey(alias, decryptPassword(keyStorePassword).toCharArray());
}
catch (Exception e)
{
More information about the jboss-svn-commits
mailing list