Skip to content

Commit

Permalink
Merge pull request #2684 from lorthirk/fix-dbConnectionStringSsl
Browse files Browse the repository at this point in the history
Add useSsl and additional options to MariaDB connection string
  • Loading branch information
Coduz authored Aug 27, 2019
2 parents cf8a834 + 07fe95d commit 950f6e4
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ public String connectionUrl() {
dbConnectionString.deleteCharAt(dbConnectionString.length() - 1);

}
String additionalOptions = config.getString(SystemSettingKey.DB_CONNECTION_ADDITIONAL_OPTIONS);
if (StringUtils.isNotBlank(additionalOptions)) {
dbConnectionString.append(additionalOptions)
.append(";");
}
return dbConnectionString.toString();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
package org.eclipse.kapua.commons.jpa;

import com.google.common.base.MoreObjects;
import org.apache.commons.lang.StringUtils;

import org.eclipse.kapua.commons.setting.system.SystemSetting;
import org.eclipse.kapua.commons.setting.system.SystemSettingKey;

Expand All @@ -32,7 +34,10 @@ public String connectionUrl() {
if (schema != null) {
connectionUrl += ";INIT=CREATE SCHEMA IF NOT EXISTS " + schema + "\\;SET SCHEMA " + schema;
}

String additionalOptions = config.getString(SystemSettingKey.DB_CONNECTION_ADDITIONAL_OPTIONS);
if (StringUtils.isNotBlank(additionalOptions)) {
connectionUrl += ";" + additionalOptions;
}
return connectionUrl;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,15 @@ public static String resolveJdbcUrl() {
SystemSetting config = SystemSetting.getInstance();
String connectionUrlResolverType = config.getString(SystemSettingKey.DB_JDBC_CONNECTION_URL_RESOLVER, "DEFAULT");
LOG.debug("The following JDBC connection URL resolver type will be used: {}", connectionUrlResolverType);
if (connectionUrlResolverType.equals("DEFAULT")) {
return new DefaultConfigurableJdbcConnectionUrlResolver().connectionUrl();
} else if ("H2".equals(connectionUrlResolverType)) {
return new H2JdbcConnectionUrlResolver().connectionUrl();
} else if ("MariaDB".equals(connectionUrlResolverType)) {
return new MariaDBJdbcConnectionUrlResolver().connectionUrl();
} else {
throw new IllegalArgumentException("Unknown JDBC connection URL resolver type: " + connectionUrlResolverType);
switch (connectionUrlResolverType) {
case "DEFAULT":
return new DefaultConfigurableJdbcConnectionUrlResolver().connectionUrl();
case "H2":
return new H2JdbcConnectionUrlResolver().connectionUrl();
case "MariaDB":
return new MariaDBJdbcConnectionUrlResolver().connectionUrl();
default:
throw new IllegalArgumentException("Unknown JDBC connection URL resolver type: " + connectionUrlResolverType);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import org.eclipse.kapua.commons.setting.system.SystemSetting;
import org.eclipse.kapua.commons.setting.system.SystemSettingKey;

import org.apache.commons.lang.StringUtils;

/**
* MariaDB Jdbc url connection resolver implementation
*
Expand All @@ -31,6 +33,10 @@ public String connectionUrl() {
String dbConnectionScheme = config.getString(SystemSettingKey.DB_CONNECTION_SCHEME);
String dbConnectionHost = config.getString(SystemSettingKey.DB_CONNECTION_HOST);
String dbConnectionPort = config.getString(SystemSettingKey.DB_CONNECTION_PORT);
boolean useSsl = config.getBoolean(SystemSettingKey.DB_CONNECTION_USE_SSL,false);
String trustStore = config.getString(SystemSettingKey.DB_CONNECTION_TRUSTSTORE_URL);
String trustStorePwd = config.getString(SystemSettingKey.DB_CONNECTION_TRUSTSTORE_PWD);
String additionalOptions = config.getString(SystemSettingKey.DB_CONNECTION_ADDITIONAL_OPTIONS);

StringBuilder dbConnectionString = new StringBuilder().append(dbConnectionScheme)
.append("://")
Expand Down Expand Up @@ -70,6 +76,27 @@ public String connectionUrl() {
.append("&");
}

dbConnectionString.append("useSSL=")
.append(useSsl)
.append("&");

if (StringUtils.isNotBlank(trustStore)) {
dbConnectionString.append("trustStore=")
.append(trustStore)
.append("&");
}

if (StringUtils.isNotBlank(trustStorePwd)) {
dbConnectionString.append("trustStorePassword=")
.append(trustStorePwd)
.append("&");
}

if (StringUtils.isNotBlank(additionalOptions)) {
dbConnectionString.append(additionalOptions)
.append("&");
}

// Unmodifiable parameters
dbConnectionString.append("allowMultiQueries=true");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,7 @@ public enum SystemSettingKey implements SettingKey {
/**
* Database use ssl connection
*/
DB_CONNECTION_USESSL("commons.db.connection.useSsl"),
/**
* Database verify ssl connection (trust server/client certificates)
*/
DB_CONNECTION_VERIFYSSL("commons.db.connection.sslVerify"),
DB_CONNECTION_USE_SSL("commons.db.connection.useSsl"),
/**
* Database truststore url
*/
Expand All @@ -102,7 +98,10 @@ public enum SystemSettingKey implements SettingKey {
* Database truststore password
*/
DB_CONNECTION_TRUSTSTORE_PWD("commons.db.connection.trust.store.pwd"),

/**
* Any additional option that can be passed to the JDBC connection string
*/
DB_CONNECTION_ADDITIONAL_OPTIONS("commons.db.connection.additionalOptions"),
/**
* Database schema name
*/
Expand Down

0 comments on commit 950f6e4

Please sign in to comment.