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;
+ }
}