[jboss-svn-commits] JBossWS SVN: r789 - branches/jbossws-1.0/src/main/java/org/jboss/ws/wsse

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Aug 20 15:58:30 EDT 2006


Author: mageshbk
Date: 2006-08-20 15:58:27 -0400 (Sun, 20 Aug 2006)
New Revision: 789

Modified:
   branches/jbossws-1.0/src/main/java/org/jboss/ws/wsse/SecurityStore.java
Log:
Fixed code which was directly updating keyStorePassword

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/wsse/SecurityStore.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/wsse/SecurityStore.java	2006-08-20 19:41:06 UTC (rev 788)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/wsse/SecurityStore.java	2006-08-20 19:58:27 UTC (rev 789)
@@ -104,49 +104,12 @@
 
    private KeyStore loadStore(String property, String type, URL storeURL, String storeType, String storePassword) throws WSSecurityException
    {
-      if (storeURL==null)
-      {
-         String defaultStore = System.getProperty(property);
-         if (defaultStore==null)
-         {
-            return null;
-         }
-         
-         File storeFile = new File(defaultStore);
-         try
-         {
-            storeURL = storeFile.toURL();
-         }
-         catch (MalformedURLException e)
-         {
-            throw new WSSecurityException("Problems loading " + type + ": " + e.getMessage(), e);
-         }
-      }
-      
       if (storeType == null)
          storeType = System.getProperty(property + "Type");
       if (storeType == null)
          storeType = "jks";
 
-      if( storePassword.charAt(0) == '{' )
-      {
-         StringTokenizer tokenizer = new StringTokenizer(storePassword, "{}");
-         String keyStorePasswordCmdType = tokenizer.nextToken();
-         String keyStorePasswordCmd = tokenizer.nextToken();
-         if( keyStorePasswordCmdType.equals("EXT") )
-         {
-            storePassword = execPasswordCmd(keyStorePasswordCmd);
-         }
-         else if( keyStorePasswordCmdType.equals("CLASS") )
-         {
-            storePassword = invokePasswordClass(keyStorePasswordCmd);
-         }
-         else
-         {
-            throw new WSSecurityException("Unknown keyStorePasswordCmdType: "+keyStorePasswordCmdType);
-         }
-      }
-      keyStorePassword = storePassword;
+      storePassword = getPassword(storePassword);
       try
       {
          if (storeURL == null)
@@ -162,7 +125,7 @@
          log.debug("loadStore: " + storeURL);
          InputStream stream = storeURL.openStream();
          KeyStore keyStore = KeyStore.getInstance(storeType);
-         keyStore.load(stream, keyStorePassword.toCharArray());
+         keyStore.load(stream, storePassword.toCharArray());
 
          return keyStore;
       }
@@ -171,6 +134,35 @@
          throw new WSSecurityException("Problems loading " + type + ": " + e.getMessage(), e);
       }
    }
+
+   /**
+    * 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
+   {
+      if( password.charAt(0) == '{' )
+      {
+         StringTokenizer tokenizer = new StringTokenizer(password, "{}");
+         String keyStorePasswordCmdType = tokenizer.nextToken();
+         String keyStorePasswordCmd = tokenizer.nextToken();
+         if( keyStorePasswordCmdType.equals("EXT") )
+         {
+            password = execPasswordCmd(keyStorePasswordCmd);
+         }
+         else if( keyStorePasswordCmdType.equals("CLASS") )
+         {
+            password = invokePasswordClass(keyStorePasswordCmd);
+         }
+         else
+         {
+            throw new WSSecurityException("Unknown keyStorePasswordCmdType: "+keyStorePasswordCmdType);
+         }
+      }
+
+      return password;
+   }
+
    private String execPasswordCmd(String keyStorePasswordCmd) throws WSSecurityException
    {
       log.debug("Executing command: "+keyStorePasswordCmd);
@@ -359,7 +351,7 @@
       PrivateKey key;
       try
       {
-         key = (PrivateKey) keyStore.getKey(alias, keyStorePassword.toCharArray());
+         key = (PrivateKey) keyStore.getKey(alias, getPassword(keyStorePassword).toCharArray());
       }
       catch (Exception e)
       {




More information about the jboss-svn-commits mailing list