diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/BaseWebApplication.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/BaseWebApplication.java index 4447cfa368..fecdc0d102 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/BaseWebApplication.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/app/BaseWebApplication.java @@ -18,7 +18,6 @@ package io.cloudbeaver.model.app; import io.cloudbeaver.model.log.SLF4JLogHandler; import io.cloudbeaver.model.rm.local.LocalResourceController; -import io.cloudbeaver.model.session.WebSession; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.runtime.Platform; import org.eclipse.equinox.app.IApplicationContext; @@ -113,6 +112,8 @@ public abstract class BaseWebApplication extends BaseApplicationImpl implements protected abstract void loadConfiguration(String configPath) throws DBException; + protected abstract void validateConfiguration(Map appConfig) throws DBException; + @Override public VirtualProjectImpl createProjectImpl( @NotNull RMProject project, diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java index b358df710d..c01c6d643d 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/CBApplication.java @@ -546,7 +546,9 @@ public class CBApplication extends BaseWebApplication implements WebAuthApplicat // App config Map appConfig = JSONUtils.getObject(configProps, "app"); + validateConfiguration(appConfig); gson.fromJson(gson.toJsonTree(appConfig), CBAppConfig.class); + databaseConfiguration.putAll(JSONUtils.getObject(serverConfig, CBConstants.PARAM_DB_CONFIGURATION)); readProductConfiguration(serverConfig, gson, homeFolder); @@ -587,6 +589,11 @@ public class CBApplication extends BaseWebApplication implements WebAuthApplicat patchConfigurationWithProperties(productConfiguration); } + @Override + protected void validateConfiguration(Map appConfig) throws DBException { + + } + protected void readProductConfiguration(Map serverConfig, Gson gson, String homeFolder) throws DBException { String productConfigPath = WebAppUtils.getRelativePath( JSONUtils.getString( @@ -820,6 +827,7 @@ public class CBApplication extends BaseWebApplication implements WebAuthApplicat throw new DBException("Invalid server configuration, server name cannot be empty"); } Map configurationProperties = collectConfigurationProperties(newServerName, newServerURL, sessionExpireTime, appConfig); + validateConfiguration(configurationProperties); writeRuntimeConfig(configurationProperties); }