CB-5138 force use default properties for default database (#2751)

* CB-5138 force use default properties for default database

* CB-5138 review fix

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
This commit is contained in:
Alexander Skoblikov
2024-07-02 16:04:42 +00:00
committed by GitHub
co-authored by Evgenia Bezborodova
parent faafcee1a4
commit 1e2eee87d3
2 changed files with 28 additions and 1 deletions
@@ -127,8 +127,17 @@ public class CBDatabase {
LoggingProgressMonitor monitor = new LoggingProgressMonitor(log);
if (isDefaultH2Configuration(databaseConfiguration)) {
//force use default values even if they are explicitly specified
databaseConfiguration.setUser(null);
databaseConfiguration.setPassword(null);
databaseConfiguration.setSchema(null);
}
String dbUser = databaseConfiguration.getUser();
String dbPassword = databaseConfiguration.getPassword();
String schemaName = databaseConfiguration.getSchema();
if (CommonUtils.isEmpty(dbUser) && driver.isEmbedded()) {
File pwdFile = application.getDataDirectory(true).resolve(DEFAULT_DB_PWD_FILE).toFile();
if (!driver.isAnonymousAccess()) {
@@ -191,7 +200,6 @@ public class CBDatabase {
DatabaseMetaData metaData = connection.getMetaData();
log.debug("\tConnected to " + metaData.getDatabaseProductName() + " " + metaData.getDatabaseProductVersion());
var schemaName = databaseConfiguration.getSchema();
if (dialect instanceof SQLDialectSchemaController && CommonUtils.isNotEmpty(schemaName)) {
var dialectSchemaController = (SQLDialectSchemaController) dialect;
var schemaExistQuery = dialectSchemaController.getSchemaExistQuery(schemaName);
@@ -578,4 +586,11 @@ public class CBDatabase {
return dialect;
}
public static boolean isDefaultH2Configuration(WebDatabaseConfig databaseConfiguration) {
var v1DefaultUrl = "jdbc:h2:/opt/cloudbeaver/workspace/.data/" + V1_DB_NAME;
var v2DefaultUrl = "jdbc:h2:/opt/cloudbeaver/workspace/.data/" + V2_DB_NAME;
return v1DefaultUrl.equals(databaseConfiguration.getUrl())
|| v2DefaultUrl.equals(databaseConfiguration.getUrl());
}
}
@@ -84,4 +84,16 @@ public class WebDatabaseConfig implements InternalDatabaseConfig {
public String getSchema() {
return schema;
}
void setPassword(String password) {
this.password = password;
}
void setSchema(String schema) {
this.schema = schema;
}
void setUser(String user) {
this.user = user;
}
}