Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
- index 4b91e4a..59a6d60 100644
- --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
- +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
- @@ -17,6 +17,9 @@
- package org.apache.tomcat.jdbc.pool;
- +import java.io.File;
- +import java.io.FileInputStream;
- +import java.io.IOException;
- import java.sql.Connection;
- import java.util.Hashtable;
- import java.util.Properties;
- @@ -67,6 +70,7 @@ public class DataSourceFactory implements ObjectFactory {
- protected static final String PROP_PASSWORD = "password";
- protected static final String PROP_URL = "url";
- protected static final String PROP_USERNAME = "username";
- + protected static final String PROP_CREDENTIALFILE = "credentialFile";
- protected static final String PROP_MAXACTIVE = "maxActive";
- protected static final String PROP_MAXIDLE = "maxIdle";
- @@ -140,6 +144,7 @@ public class DataSourceFactory implements ObjectFactory {
- PROP_PASSWORD,
- PROP_URL,
- PROP_USERNAME,
- + PROP_CREDENTIALFILE,
- PROP_VALIDATIONQUERY,
- PROP_VALIDATOR_CLASS_NAME,
- PROP_VALIDATIONINTERVAL,
- @@ -334,14 +339,32 @@ public class DataSourceFactory implements ObjectFactory {
- poolProperties.setTestWhileIdle(Boolean.valueOf(value).booleanValue());
- }
- - value = properties.getProperty(PROP_PASSWORD);
- + value = properties.getProperty(PROP_URL);
- if (value != null) {
- - poolProperties.setPassword(value);
- + poolProperties.setUrl(value);
- }
- - value = properties.getProperty(PROP_URL);
- + value = properties.getProperty(PROP_CREDENTIALFILE);
- if (value != null) {
- - poolProperties.setUrl(value);
- + File credFile = new File(value);
- + if (credFile.exists()) {
- + Properties credentials = new Properties();
- + try {
- + credentials.load(new FileInputStream(credFile));
- + poolProperties.setUsername(credentials.getProperty(PROP_USERNAME));
- + poolProperties.setPassword(credentials.getProperty(PROP_PASSWORD));
- + } catch (IOException e) {
- + System.err.println("Error reading credential file " + value);
- + }
- + } else {
- + System.err.println(value + " does not exist.");
- + }
- + }
- +
- + // Explicit username and password supersede values in credential file
- + value = properties.getProperty(PROP_PASSWORD);
- + if (value != null) {
- + poolProperties.setPassword(value);
- }
- value = properties.getProperty(PROP_USERNAME);
Add Comment
Please, Sign In to add comment