You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2009/03/13 06:58:49 UTC

svn commit: r753135 - /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractDBMediatorFactory.java

Author: indika
Date: Fri Mar 13 05:58:48 2009
New Revision: 753135

URL: http://svn.apache.org/viewvc?rev=753135&view=rev
Log:
add secret manager based password lookup for db mediators

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractDBMediatorFactory.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractDBMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractDBMediatorFactory.java?rev=753135&r1=753134&r2=753135&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractDBMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractDBMediatorFactory.java Fri Mar 13 05:58:48 2009
@@ -157,10 +157,13 @@
             return dataSource;
         }
         Properties props = new Properties();
+        String password = getValue(pool, PASS_Q);
         // load the minimum required properties
         props.put(Context.INITIAL_CONTEXT_FACTORY, (getValue(pool, ICCLASS_Q)));
         props.put(Context.SECURITY_PRINCIPAL, getValue(pool, USER_Q));
-        props.put(Context.SECURITY_CREDENTIALS, getValue(pool, PASS_Q));
+        if (password != null && !"".equals(password)) {
+            props.put(Context.SECURITY_CREDENTIALS, getActualPassword(password));
+        }
         props.put(Context.PROVIDER_URL, getValue(pool, URL_Q));
 
         dataSource = DataSourceFinder.find(dsName, props);
@@ -171,7 +174,7 @@
         mediator.addDataSourceProperty(ICCLASS_Q, getValue(pool, ICCLASS_Q));
         mediator.addDataSourceProperty(URL_Q, getValue(pool, URL_Q));
         mediator.addDataSourceProperty(USER_Q, getValue(pool, USER_Q));
-        mediator.addDataSourceProperty(PASS_Q, getValue(pool, PASS_Q));
+        mediator.addDataSourceProperty(PASS_Q, password);
 
         return dataSource;
     }
@@ -191,12 +194,8 @@
         ds.setDriverClassName(getValue(pool, DRIVER_Q));
         ds.setUsername(getValue(pool, USER_Q));
         String password = getValue(pool, PASS_Q);
-        SecretManager secretManager = SecretManager.getInstance();
-        if (secretManager.isInitialized()) {
-            password = secretManager.getSecret(password);
-        }
         if (password != null && !"".equals(password)) {
-            ds.setPassword(password);
+            ds.setPassword(getActualPassword(password));
         }
         ds.setUrl(getValue(pool, URL_Q));
 
@@ -204,7 +203,7 @@
         mediator.addDataSourceProperty(DRIVER_Q, getValue(pool, DRIVER_Q));
         mediator.addDataSourceProperty(URL_Q, getValue(pool, URL_Q));
         mediator.addDataSourceProperty(USER_Q, getValue(pool, USER_Q));
-        mediator.addDataSourceProperty(PASS_Q, getValue(pool, PASS_Q));
+        mediator.addDataSourceProperty(PASS_Q, password);
 
         Iterator props = pool.getChildrenWithName(PROP_Q);
         while (props.hasNext()) {
@@ -361,5 +360,21 @@
         }
         return null;
     }
+
+    /**
+     * Get the password from SecretManager . here only use SecretManager
+     *
+     * @param aliasPasword alias password
+     * @return if the SecretManager is initiated , then , get the corresponding secret
+     *         , else return alias itself
+     */
+
+    private String getActualPassword(String aliasPasword) {
+        SecretManager secretManager = SecretManager.getInstance();
+        if (secretManager.isInitialized()) {
+            return secretManager.getSecret(aliasPasword);
+        }
+        return aliasPasword;
+    }
 }