From 95e0b429eb1359c0d732df70f4087e6b638747c4 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 18 Apr 2018 23:43:01 +0900 Subject: [PATCH] Fixes #1136 sanitize jdbcUrl for logging. --- src/main/java/com/zaxxer/hikari/util/DriverDataSource.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/util/DriverDataSource.java b/src/main/java/com/zaxxer/hikari/util/DriverDataSource.java index 745479ca..3ea830b3 100644 --- a/src/main/java/com/zaxxer/hikari/util/DriverDataSource.java +++ b/src/main/java/com/zaxxer/hikari/util/DriverDataSource.java @@ -98,17 +98,18 @@ public final class DriverDataSource implements DataSource } } + final String sanitizedUrl = jdbcUrl.replaceAll("([?&;]password=)[^&#;]*(.*)", "$1$2"); try { if (driver == null) { 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)) { - 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) { - throw new RuntimeException("Failed to get driver instance for jdbcUrl=" + jdbcUrl, e); + throw new RuntimeException("Failed to get driver instance for jdbcUrl=" + sanitizedUrl, e); } }