Replace MySQL use-ssl boolean with explicit connection-parameters (sslMode)
Build / build (push) Successful in 1m12s

This commit is contained in:
Michael Burgess
2026-08-07 07:21:43 -04:00
parent 1c16f9a83b
commit f470b30130
4 changed files with 29 additions and 8 deletions
@@ -90,14 +90,14 @@ public class ConfigManager {
config.getString("storage.mysql.database", "blockparty"),
config.getString("storage.mysql.username", "blockparty"),
config.getString("storage.mysql.password", ""),
config.getBoolean("storage.mysql.use-ssl", false),
config.getString("storage.mysql.table-prefix", "bp_")
config.getString("storage.mysql.table-prefix", "bp_"),
config.getString("storage.mysql.connection-parameters", "sslMode=PREFERRED&verifyServerCertificate=false")
);
}
/** Immutable snapshot of the storage.* config section. */
public record StorageSettings(String type, String host, int port, String database,
String username, String password, boolean useSsl, String tablePrefix) {
String username, String password, String tablePrefix, String connectionParameters) {
public boolean isMysql() {
return "mysql".equalsIgnoreCase(type);
@@ -53,9 +53,14 @@ public class StatsDatabase {
private void connectMysql() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://" + settings.host() + ":" + settings.port() + "/" + settings.database()
+ "?useSSL=" + settings.useSsl() + "&autoReconnect=true&characterEncoding=utf8";
connection = DriverManager.getConnection(url, settings.username(), settings.password());
String extra = settings.connectionParameters() == null ? "" : settings.connectionParameters().trim();
StringBuilder url = new StringBuilder("jdbc:mysql://")
.append(settings.host()).append(':').append(settings.port()).append('/').append(settings.database())
.append("?autoReconnect=true&characterEncoding=utf8");
if (!extra.isEmpty()) {
url.append('&').append(extra);
}
connection = DriverManager.getConnection(url.toString(), settings.username(), settings.password());
}
private String createTableStatement() {
+6 -1
View File
@@ -54,8 +54,13 @@ storage:
database: blockparty
username: blockparty
password: password
use-ssl: false
table-prefix: "bp_"
# Raw JDBC connection parameters appended to the connection URL (without a leading '?' or '&').
# Tune SSL/TLS behavior here instead of a single use-ssl toggle, e.g.:
# "sslMode=REQUIRED&verifyServerCertificate=false"
# "sslMode=VERIFY_IDENTITY" (validates the server cert against a trust store)
# "sslMode=DISABLED" (no TLS at all)
connection-parameters: "sslMode=PREFERRED&verifyServerCertificate=false"
rewards:
winner: