Guest User

Untitled

a guest
Oct 12th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. 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
  2. index 4b91e4a..59a6d60 100644
  3. --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
  4. +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
  5. @@ -17,6 +17,9 @@
  6. package org.apache.tomcat.jdbc.pool;
  7.  
  8.  
  9. +import java.io.File;
  10. +import java.io.FileInputStream;
  11. +import java.io.IOException;
  12. import java.sql.Connection;
  13. import java.util.Hashtable;
  14. import java.util.Properties;
  15. @@ -67,6 +70,7 @@ public class DataSourceFactory implements ObjectFactory {
  16. protected static final String PROP_PASSWORD = "password";
  17. protected static final String PROP_URL = "url";
  18. protected static final String PROP_USERNAME = "username";
  19. + protected static final String PROP_CREDENTIALFILE = "credentialFile";
  20.  
  21. protected static final String PROP_MAXACTIVE = "maxActive";
  22. protected static final String PROP_MAXIDLE = "maxIdle";
  23. @@ -140,6 +144,7 @@ public class DataSourceFactory implements ObjectFactory {
  24. PROP_PASSWORD,
  25. PROP_URL,
  26. PROP_USERNAME,
  27. + PROP_CREDENTIALFILE,
  28. PROP_VALIDATIONQUERY,
  29. PROP_VALIDATOR_CLASS_NAME,
  30. PROP_VALIDATIONINTERVAL,
  31. @@ -334,14 +339,32 @@ public class DataSourceFactory implements ObjectFactory {
  32. poolProperties.setTestWhileIdle(Boolean.valueOf(value).booleanValue());
  33. }
  34.  
  35. - value = properties.getProperty(PROP_PASSWORD);
  36. + value = properties.getProperty(PROP_URL);
  37. if (value != null) {
  38. - poolProperties.setPassword(value);
  39. + poolProperties.setUrl(value);
  40. }
  41.  
  42. - value = properties.getProperty(PROP_URL);
  43. + value = properties.getProperty(PROP_CREDENTIALFILE);
  44. if (value != null) {
  45. - poolProperties.setUrl(value);
  46. + File credFile = new File(value);
  47. + if (credFile.exists()) {
  48. + Properties credentials = new Properties();
  49. + try {
  50. + credentials.load(new FileInputStream(credFile));
  51. + poolProperties.setUsername(credentials.getProperty(PROP_USERNAME));
  52. + poolProperties.setPassword(credentials.getProperty(PROP_PASSWORD));
  53. + } catch (IOException e) {
  54. + System.err.println("Error reading credential file " + value);
  55. + }
  56. + } else {
  57. + System.err.println(value + " does not exist.");
  58. + }
  59. + }
  60. +
  61. + // Explicit username and password supersede values in credential file
  62. + value = properties.getProperty(PROP_PASSWORD);
  63. + if (value != null) {
  64. + poolProperties.setPassword(value);
  65. }
  66.  
  67. value = properties.getProperty(PROP_USERNAME);
Add Comment
Please, Sign In to add comment