ソースを参照

Remove password from db.user parsed from JDBC url (#8106)

Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/8105
Lauri Tulmin 2 年 前
コミット
0a311a1c3e

+ 4 - 0
instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcConnectionUrlParser.java

@@ -45,6 +45,10 @@ public enum JdbcConnectionUrlParser {
 
         String user = uri.getUserInfo();
         if (user != null) {
+          int colonIndex = user.indexOf(':');
+          if (colonIndex != -1) {
+            user = user.substring(0, colonIndex);
+          }
           builder.user(user);
         }
 

+ 1 - 0
instrumentation/jdbc/library/src/test/groovy/io/opentelemetry/instrumentation/jdbc/internal/JdbcConnectionUrlParserTest.groovy

@@ -75,6 +75,7 @@ class JdbcConnectionUrlParserTest extends Specification {
     "jdbc:mysql://my.host?user=myuser&password=PW"                                                    | null     | "mysql://my.host:3306"                                             | "mysql"      | null          | "myuser"      | "my.host"                                   | 3306  | null                               | null
     "jdbc:mysql://my.host:22/mydb?user=myuser&password=PW"                                            | null     | "mysql://my.host:22"                                               | "mysql"      | null          | "myuser"      | "my.host"                                   | 22    | null                               | "mydb"
     "jdbc:mysql://127.0.0.1:22/mydb?user=myuser&password=PW"                                          | stdProps | "mysql://127.0.0.1:22"                                             | "mysql"      | null          | "myuser"      | "127.0.0.1"                                 | 22    | null                               | "mydb"
+    "jdbc:mysql://myuser:password@my.host:22/mydb"                                                    | null     | "mysql://my.host:22"                                               | "mysql"      | null          | "myuser"      | "my.host"                                   | 22    | null                               | "mydb"
 
     // https://mariadb.com/kb/en/library/about-mariadb-connector-j/#connection-strings                                                 
     "jdbc:mariadb:127.0.0.1:33/mdbdb"                                                                 | null     | "mariadb://127.0.0.1:33"                                           | "mariadb"    | null          | null          | "127.0.0.1"                                 | 33    | null                               | "mdbdb"