Index: org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/internal/SecretManagerInitializerComponent.java
===================================================================
--- org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/internal/SecretManagerInitializerComponent.java	(revision 35914)
+++ org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/internal/SecretManagerInitializerComponent.java	Sun May 30 21:28:47 IST 2010
@@ -20,10 +20,10 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.commons.security.SecurityConstants;
-import org.apache.synapse.commons.security.secret.SecretCallbackHandler;
-import org.apache.synapse.commons.security.secret.SecretCallbackHandlerFactory;
-import org.apache.synapse.commons.security.secret.SecretManager;
+import org.apache.synapse.securevault.SecurityConstants;
+import org.apache.synapse.securevault.secret.SecretCallbackHandler;
+import org.apache.synapse.securevault.secret.SecretCallbackHandlerFactory;
+import org.apache.synapse.securevault.secret.SecretManager;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentContext;
 import org.wso2.carbon.securevault.SecretCallbackHandlerService;
@@ -71,7 +71,7 @@
 
             SecretCallbackHandler passwordProvider =
                     SecretCallbackHandlerFactory.createSecretCallbackHandler(properties,
-                            GLOBAL_PREFIX + SecurityConstants.PROP_SECRET_PROVIDER);
+                            GLOBAL_PREFIX + SecurityConstants.PASSWORD_PROVIDER_SIMPLE);
 
             if (passwordProvider != null) {
                 serviceImpl = new SecretCallbackHandlerServiceImpl();
Index: org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/DataBaseConfiguration.java
===================================================================
--- org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/DataBaseConfiguration.java	(revision 67294)
+++ org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/DataBaseConfiguration.java	Tue Jun 01 11:26:59 IST 2010
@@ -16,6 +16,9 @@
 
 package org.wso2.carbon.registry.core.config;
 
+import org.apache.synapse.securevault.SecretResolver;
+import org.apache.synapse.securevault.SecurityConstants;
+
 /**
  * This class is to hold, database configurations such as URL, userName, and password. Users can
  * define them in resgirty.xml or at specify them at runtime using the APIs provided.
@@ -33,6 +36,7 @@
     private String maxActive = null;
     private String maxIdle = null;
     private String minIdle = null;
+    private SecretResolver secretResolver;
     private String validationQuery = null;
 
     /**
@@ -216,6 +220,34 @@
     }
 
     /**
+     * Sets a password manager which is responsible for resolving encrypted passwords
+     *
+     * @param secretResolver <code>SecretResolver</code> instance
+     */
+    public void setSecretResolver(SecretResolver secretResolver) {
+        this.secretResolver = secretResolver;
+    }
+
+    /**
+     * If the password is protected , then decrypts the password and returns the plain text
+     * Otherwise, returns the given password as-is
+     *
+     * @return Resolved password
+     */
+    public String getResolvedPassword() {
+        if (secretResolver.isInitialized()) {
+            String key = configName + "." + SecurityConstants.PROP_PASSWORD;
+            if (secretResolver.isTokenProtected(key)) {
+                return secretResolver.resolve(password);
+            } else {
+                return password;
+            }
+        } else {
+            return password;
+        }
+    }
+
+    /**
      * Method to obtain the validation query value.
      *
      * @return the validation query value defined.
Index: org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretCallbackHandlerService.java
===================================================================
--- org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretCallbackHandlerService.java	(revision 35839)
+++ org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretCallbackHandlerService.java	Sun May 30 21:28:47 IST 2010
@@ -18,14 +18,23 @@
  */
 package org.wso2.carbon.securevault;
 
-import org.apache.synapse.commons.security.secret.SecretCallbackHandler;
+import org.apache.synapse.securevault.secret.SecretCallbackHandler;
 
 /**
- *
+ * Expose <code>SecretCallbackHandler</code> as a service
  */
 public interface SecretCallbackHandlerService {
-    
+    /**
+     * Returns the global secret call handler
+     *
+     * @return An instance of <code>SecretCallbackHandler</code>
+     */
     SecretCallbackHandler getSecretCallbackHandler();
 
+    /**
+     * Register the global secret call handler
+     *
+     * @param secretCallbackHandler an instance of <code>SecretCallbackHandler</code>
+     */
     void setSecretCallbackHandler(SecretCallbackHandler secretCallbackHandler);
 }
Index: org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/jdbc/utils/RegistryDataSource.java
===================================================================
--- org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/jdbc/utils/RegistryDataSource.java	(revision 55833)
+++ org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/jdbc/utils/RegistryDataSource.java	Sun May 30 22:16:10 IST 2010
@@ -52,7 +52,7 @@
         basicDataSource.setUrl(config.getDbUrl());
         basicDataSource.setDriverClassName(config.getDriverName());
         basicDataSource.setUsername(config.getUserName());
-        basicDataSource.setPassword(config.getPassWord());
+        basicDataSource.setPassword(config.getResolvedPassword());
 
         if (config.getMaxActive() != null) {
             basicDataSource.setMaxActive(Integer.parseInt(config.getMaxActive()));
Index: org.wso2.carbon.securevault/pom.xml
===================================================================
--- org.wso2.carbon.securevault/pom.xml	(revision 52851)
+++ org.wso2.carbon.securevault/pom.xml	Mon May 24 22:03:38 IST 2010
@@ -48,6 +48,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.synapse</groupId>
+            <artifactId>synapse-securevault</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.synapse</groupId>
             <artifactId>synapse-commons</artifactId>
         </dependency>
     </dependencies>
Index: org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/utils/RegistryUtils.java
===================================================================
--- org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/utils/RegistryUtils.java	(revision 67334)
+++ org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/utils/RegistryUtils.java	Tue Jun 01 11:22:57 IST 2010
@@ -1434,7 +1434,7 @@
             if (config.getId().equals(target)) {
                 MountHandler handler = new MountHandler();
                 handler.setUserName(config.getTrustedUser());
-                handler.setPassword(config.getTrustedPwd());
+                handler.setPassword(config.getResolvedTrustedPwd());
                 handler.setDbConfig(config.getDbConfig());
                 handler.setRegistryRoot(config.getRegistryRoot());
                 handler.setReadOnly(config.getReadOnly() != null &&
@@ -1591,7 +1591,7 @@
         basicDataSource.setUrl(config.getDbUrl());
         basicDataSource.setDriverClassName(config.getDriverName());
         basicDataSource.setUsername(config.getUserName());
-        basicDataSource.setPassword(config.getPassWord());
+        basicDataSource.setPassword(config.getResolvedPassword());
 
         if (config.getMaxActive() != null) {
             basicDataSource.setMaxActive(Integer.parseInt(config.getMaxActive()));
Index: org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/RemoteConfiguration.java
===================================================================
--- org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/RemoteConfiguration.java	(revision 55833)
+++ org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/RemoteConfiguration.java	Sun May 30 22:10:28 IST 2010
@@ -16,6 +16,9 @@
 
 package org.wso2.carbon.registry.core.config;
 
+import org.apache.synapse.securevault.SecretResolver;
+import org.apache.synapse.securevault.SecurityConstants;
+
 /**
  * This class contains configuration of a remote instance.
  */
@@ -28,6 +31,7 @@
     private String dbConfig;
     private String readOnly;
     private String registryRoot;
+    private SecretResolver secretResolver;
 
     /**
      * Method to obtain the instance identifier.
@@ -154,4 +158,32 @@
     public void setRegistryRoot(String registryRoot) {
         this.registryRoot = registryRoot;
     }
+
+    /**
+     * Sets a password manager which is responsible for resolving encrypted passwords
+     *
+     * @param secretResolver <code>SecretResolver</code> instance
+     */
+    public void setSecretResolver(SecretResolver secretResolver) {
+        this.secretResolver = secretResolver;
-}
+    }
+
+    /**
+     * If the password is protected , then decrypts the password and returns the plain text
+     * Otherwise, returns the given password as-is
+     *
+     * @return Resolved password
+     */
+    public String getResolvedTrustedPwd() {
+        if (secretResolver.isInitialized()) {
+            String key = id + "." + SecurityConstants.PROP_PASSWORD;
+            if (secretResolver.isTokenProtected(key)) {
+                return secretResolver.resolve(trustedPwd);
+            } else {
+                return trustedPwd;
+            }
+        } else {
+            return trustedPwd;
+        }
+    }
+}
Index: org.wso2.carbon.registry.core/pom.xml
===================================================================
--- org.wso2.carbon.registry.core/pom.xml	(revision 67102)
+++ org.wso2.carbon.registry.core/pom.xml	Sun May 30 21:50:23 IST 2010
@@ -184,6 +184,10 @@
             <artifactId>abdera</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.synapse</groupId>
+            <artifactId>synapse-securevault</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.wso2.carbon</groupId>
             <artifactId>org.wso2.carbon.logging</artifactId>
             <version>${pom.version}</version>
Index: org.wso2.carbon.server/pom.xml
===================================================================
--- org.wso2.carbon.server/pom.xml	(revision 58344)
+++ org.wso2.carbon.server/pom.xml	Sun May 30 22:23:38 IST 2010
@@ -166,6 +166,10 @@
             <groupId>org.igniterealtime.smack</groupId>
             <artifactId>smackx</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.synapse</groupId>
+            <artifactId>synapse-securevault</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
Index: org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretCallbackHandlerServiceImpl.java
===================================================================
--- org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretCallbackHandlerServiceImpl.java	(revision 35839)
+++ org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretCallbackHandlerServiceImpl.java	Sun May 30 21:28:47 IST 2010
@@ -18,13 +18,14 @@
  */
 package org.wso2.carbon.securevault;
 
-import org.apache.synapse.commons.security.secret.SecretCallbackHandler;
+import org.apache.synapse.securevault.secret.SecretCallbackHandler;
 
+
 /**
- *
+ * Implementation for <code>SecretCallbackHandlerService</code>
  */
 public class SecretCallbackHandlerServiceImpl implements SecretCallbackHandlerService {
-    
+
     private SecretCallbackHandler secretCallbackHandler;
 
     public SecretCallbackHandler getSecretCallbackHandler() {
Index: org.wso2.carbon.server/src/main/java/org/wso2/carbon/server/transports/TransportManager.java
===================================================================
--- org.wso2.carbon.server/src/main/java/org/wso2/carbon/server/transports/TransportManager.java	(revision 66489)
+++ org.wso2.carbon.server/src/main/java/org/wso2/carbon/server/transports/TransportManager.java	Sun May 30 22:27:55 IST 2010
@@ -17,6 +17,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.securevault.SecretResolver;
+import org.apache.synapse.securevault.SecretResolverFactory;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -38,7 +40,7 @@
 import java.util.Map;
 
 /**
- * This class is reponsible for starting up the transports when Carbon is running
+ * This class is responsible for starting up the transports when Carbon is running
  * in standalone mode
  */
 public class TransportManager {
@@ -78,6 +80,10 @@
         for (int i = 0; i < childNodes.getLength(); i++) {
             Element transportEle = (Element) childNodes.item(i);
             NamedNodeMap transportAttribs = transportEle.getAttributes();
+
+            //Create the password manager
+            SecretResolver secretResolver = SecretResolverFactory.create(transportAttribs);
+
             Node nameAttrib = transportAttribs.getNamedItem("name");
             String transport;
             if (nameAttrib == null ||
@@ -109,6 +115,12 @@
                     }
                 }
                 String paramName = paramEle.getAttribute("name");
+                
+                if (secretResolver.isInitialized() &&
+                        secretResolver.isTokenProtected(paramName)) {
+                    value = secretResolver.resolve(value);
+                }
+
                 value = replaceSystemProperty(value);
                 transportParameters.add(new TransportParameter(paramName, value));
             }
Index: org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretManagerSecretCallbackHandler.java
===================================================================
--- org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretManagerSecretCallbackHandler.java	(revision 35839)
+++ org.wso2.carbon.securevault/src/main/java/org/wso2/carbon/securevault/SecretManagerSecretCallbackHandler.java	Sun May 30 21:28:47 IST 2010
@@ -18,10 +18,11 @@
  */
 package org.wso2.carbon.securevault;
 
-import org.apache.synapse.commons.security.secret.AbstractSecretCallbackHandler;
-import org.apache.synapse.commons.security.secret.SecretManager;
-import org.apache.synapse.commons.security.secret.SingleSecretCallback;
+import org.apache.synapse.securevault.secret.AbstractSecretCallbackHandler;
+import org.apache.synapse.securevault.secret.SecretManager;
+import org.apache.synapse.securevault.secret.SingleSecretCallback;
 
+
 /**
  * SecretManager based secret provider , this can be used by other application
  * to get secret form  SecretManager
Index: org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/RegistryConfigurationProcessor.java
===================================================================
--- org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/RegistryConfigurationProcessor.java	(revision 67334)
+++ org.wso2.carbon.registry.core/src/main/java/org/wso2/carbon/registry/core/config/RegistryConfigurationProcessor.java	Tue Jun 01 11:22:57 IST 2010
@@ -22,6 +22,8 @@
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.securevault.SecretResolver;
+import org.apache.synapse.securevault.SecretResolverFactory;
 import org.wso2.carbon.CarbonConstants;
 import org.wso2.carbon.registry.core.Aspect;
 import org.wso2.carbon.registry.core.RegistryConstants;
@@ -108,12 +110,14 @@
                             "true".equals(readOnlyEle.getText()));
                 }
 
+                SecretResolver secretResolver = SecretResolverFactory.create(configElement, false);
+
                 Iterator dbConfigs = configElement.getChildrenWithName(new QName("dbConfig"));
                 // Read Database configurations
                 while (dbConfigs.hasNext()) {
                     OMElement dbConfig = (OMElement) dbConfigs.next();
                     DataBaseConfiguration dataBaseConfiguration = new DataBaseConfiguration();
-
+                    dataBaseConfiguration.setSecretResolver(secretResolver);
                     String dbName = dbConfig.getAttributeValue(new QName("name"));
                     if (dbName == null) {
                         throw new RegistryException(Messages.getMessage("dbname.null"));
@@ -319,7 +323,7 @@
                 registryContext.selectDBConfig(currentConfigName);
 
                 initializeHandlers(configElement, registryContext);
-                readRemoteInstances(configElement, registryContext);
+                readRemoteInstances(configElement, registryContext, secretResolver);
                 readMounts(configElement, registryContext);
 
                 // process query processor config
@@ -566,7 +570,8 @@
 
     // reads remote instances from the configuration
     private static void readRemoteInstances(OMElement configElement,
-                                            RegistryContext registryContext)
+                                            RegistryContext registryContext,
+                                            SecretResolver secretResolver)
             throws RegistryException {
         try {
             @SuppressWarnings("unchecked")
@@ -619,6 +624,7 @@
                 }
 
                 RemoteConfiguration remoteConfiguration = new RemoteConfiguration();
+                remoteConfiguration.setSecretResolver(secretResolver);
                 remoteConfiguration.setId(id);
                 remoteConfiguration.setUrl(url);
                 remoteConfiguration.setTrustedUser(trustedUser);
Index: pom.xml
===================================================================
--- pom.xml	(revision 67382)
+++ pom.xml	Sun May 30 21:14:56 IST 2010
@@ -398,6 +398,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.synapse</groupId>
+                <artifactId>synapse-securevault</artifactId>
+                <version>${synapse.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.synapse</groupId>
                 <artifactId>synapse-commons</artifactId>
                 <version>${synapse.version}</version>
             </dependency>
Index: org.wso2.carbon.user.core/pom.xml
===================================================================
--- org.wso2.carbon.user.core/pom.xml	(revision 58346)
+++ org.wso2.carbon.user.core/pom.xml	Sun May 30 22:39:20 IST 2010
@@ -61,6 +61,10 @@
             <artifactId>org.wso2.carbon.logging</artifactId>
             <version>${pom.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.synapse</groupId>
+            <artifactId>synapse-securevault</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
Index: features/org.wso2.carbon.core.common.feature/pom.xml
===================================================================
--- features/org.wso2.carbon.core.common.feature/pom.xml	(revision 66031)
+++ features/org.wso2.carbon.core.common.feature/pom.xml	Mon May 24 22:05:27 IST 2010
@@ -76,6 +76,7 @@
                                 <bundleDef>org.eclipse.equinox:org.eclipse.equinox.http.helper</bundleDef>
                                 <bundleDef>org.eclipse.equinox:javax.servlet.jsp</bundleDef>
                                 <bundleDef>org.eclipse.equinox:org.apache.commons.el</bundleDef>
+                                <bundleDef>org.apache.synapse:synapse-securevault</bundleDef>
                                 <bundleDef>org.apache.synapse:synapse-commons</bundleDef>
                                 <bundleDef>com.h2database.wso2:h2-database-engine</bundleDef>
                                 <bundleDef>org.apache.axis2:axis2-transport-base</bundleDef>
