From 6f740265146ded5d16ade9f35666a702fbfe055a Mon Sep 17 00:00:00 2001 From: Michael Burgess Date: Thu, 6 Aug 2026 19:45:09 -0400 Subject: [PATCH] Use raw JDBC parameter string instead of ssl boolean flag --- .../org/mobarena/stats/store/mariadb/MariadbStatsStore.java | 6 +++--- .../org/mobarena/stats/store/mysql/MysqlStatsStore.java | 6 +++--- src/main/resources/config.yml | 5 +++-- .../mobarena/stats/store/mariadb/MariadbStatsStoreTest.java | 6 +++--- .../org/mobarena/stats/store/mysql/MysqlStatsStoreTest.java | 6 +++--- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/mobarena/stats/store/mariadb/MariadbStatsStore.java b/src/main/java/org/mobarena/stats/store/mariadb/MariadbStatsStore.java index 39501b5..20f74ac 100644 --- a/src/main/java/org/mobarena/stats/store/mariadb/MariadbStatsStore.java +++ b/src/main/java/org/mobarena/stats/store/mariadb/MariadbStatsStore.java @@ -29,11 +29,11 @@ public class MariadbStatsStore { String host = config.getString("host", "localhost"); int port = config.getInt("port", 3306); String database = config.getString("database", "mobarena_stats"); - boolean ssl = config.getBoolean("ssl", false); + String ssl = config.getString("ssl", ""); - String params = "useSSL=" + ssl; + String url = "jdbc:mariadb://" + host + ":" + port + "/" + database; - return "jdbc:mariadb://" + host + ":" + port + "/" + database + "?" + params; + return ssl.isEmpty() ? url : url + "?" + ssl; } } diff --git a/src/main/java/org/mobarena/stats/store/mysql/MysqlStatsStore.java b/src/main/java/org/mobarena/stats/store/mysql/MysqlStatsStore.java index a006156..504db72 100644 --- a/src/main/java/org/mobarena/stats/store/mysql/MysqlStatsStore.java +++ b/src/main/java/org/mobarena/stats/store/mysql/MysqlStatsStore.java @@ -27,11 +27,11 @@ public class MysqlStatsStore { String host = config.getString("host", "localhost"); int port = config.getInt("port", 3306); String database = config.getString("database", "mobarena_stats"); - boolean ssl = config.getBoolean("ssl", false); + String ssl = config.getString("ssl", ""); - String params = "useSSL=" + ssl; + String url = "jdbc:mysql://" + host + ":" + port + "/" + database; - return "jdbc:mysql://" + host + ":" + port + "/" + database + "?" + params; + return ssl.isEmpty() ? url : url + "?" + ssl; } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 6faf342..728988e 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -38,14 +38,15 @@ store: # - database: name of the database (must exist!) # - username: username of a valid database user # - password: password of a valid database user - # - ssl: whether to use SSL for database connections + # - ssl: extra JDBC connection parameters, appended to the URL as-is + # (e.g. 'verifyServerCertificate=false&sslmode=required') # #host: localhost #port: 3306 #database: '' #username: '' #password: '' - #ssl: false + #ssl: '' #-------------------------------------------------------------------- #-------------------------------------------------------------------- diff --git a/src/test/java/org/mobarena/stats/store/mariadb/MariadbStatsStoreTest.java b/src/test/java/org/mobarena/stats/store/mariadb/MariadbStatsStoreTest.java index f9570d0..681c164 100644 --- a/src/test/java/org/mobarena/stats/store/mariadb/MariadbStatsStoreTest.java +++ b/src/test/java/org/mobarena/stats/store/mariadb/MariadbStatsStoreTest.java @@ -16,7 +16,7 @@ class MariadbStatsStoreTest { String result = MariadbStatsStore.getUrl(config); - String expected = "jdbc:mariadb://localhost:3306/mobarena_stats?useSSL=false"; + String expected = "jdbc:mariadb://localhost:3306/mobarena_stats"; assertThat(result, equalTo(expected)); } @@ -26,11 +26,11 @@ class MariadbStatsStoreTest { config.set("host", "stats.example.com"); config.set("port", 1337); config.set("database", "mastats"); - config.set("ssl", true); + config.set("ssl", "verifyServerCertificate=false&sslmode=required"); String result = MariadbStatsStore.getUrl(config); - String expected = "jdbc:mariadb://stats.example.com:1337/mastats?useSSL=true"; + String expected = "jdbc:mariadb://stats.example.com:1337/mastats?verifyServerCertificate=false&sslmode=required"; assertThat(result, equalTo(expected)); } diff --git a/src/test/java/org/mobarena/stats/store/mysql/MysqlStatsStoreTest.java b/src/test/java/org/mobarena/stats/store/mysql/MysqlStatsStoreTest.java index c727a1c..5ceb644 100644 --- a/src/test/java/org/mobarena/stats/store/mysql/MysqlStatsStoreTest.java +++ b/src/test/java/org/mobarena/stats/store/mysql/MysqlStatsStoreTest.java @@ -16,7 +16,7 @@ class MysqlStatsStoreTest { String result = MysqlStatsStore.getUrl(config); - String expected = "jdbc:mysql://localhost:3306/mobarena_stats?useSSL=false"; + String expected = "jdbc:mysql://localhost:3306/mobarena_stats"; assertThat(result, equalTo(expected)); } @@ -26,11 +26,11 @@ class MysqlStatsStoreTest { config.set("host", "stats.example.com"); config.set("port", 1337); config.set("database", "mastats"); - config.set("ssl", true); + config.set("ssl", "verifyServerCertificate=false&sslmode=required"); String result = MysqlStatsStore.getUrl(config); - String expected = "jdbc:mysql://stats.example.com:1337/mastats?useSSL=true"; + String expected = "jdbc:mysql://stats.example.com:1337/mastats?verifyServerCertificate=false&sslmode=required"; assertThat(result, equalTo(expected)); }