Fixes #1136 sanitize jdbcUrl for logging.

pull/1161/head
Brett Wooldridge 7 years ago
parent b36323213f
commit 95e0b429eb

@ -98,17 +98,18 @@ public final class DriverDataSource implements DataSource
} }
} }
final String sanitizedUrl = jdbcUrl.replaceAll("([?&;]password=)[^&#;]*(.*)", "$1<masked>$2");
try { try {
if (driver == null) { if (driver == null) {
driver = DriverManager.getDriver(jdbcUrl); driver = DriverManager.getDriver(jdbcUrl);
LOGGER.debug("Loaded driver with class name {} for jdbcUrl={}", driver.getClass().getName(), jdbcUrl); LOGGER.debug("Loaded driver with class name {} for jdbcUrl={}", driver.getClass().getName(), sanitizedUrl);
} }
else if (!driver.acceptsURL(jdbcUrl)) { else if (!driver.acceptsURL(jdbcUrl)) {
throw new RuntimeException("Driver " + driverClassName + " claims to not accept jdbcUrl, " + jdbcUrl); throw new RuntimeException("Driver " + driverClassName + " claims to not accept jdbcUrl, " + sanitizedUrl);
} }
} }
catch (SQLException e) { catch (SQLException e) {
throw new RuntimeException("Failed to get driver instance for jdbcUrl=" + jdbcUrl, e); throw new RuntimeException("Failed to get driver instance for jdbcUrl=" + sanitizedUrl, e);
} }
} }

Loading…
Cancel
Save