From aa1edf0e293b07fb767efdd5e98cf58c2eae7339 Mon Sep 17 00:00:00 2001 From: Ainur <59531286+yagudin10@users.noreply.github.com> Date: Wed, 16 Aug 2023 21:39:53 +0200 Subject: [PATCH] CB-3098 filter auth model properties fix (#1873) * CB-3098 filter auth model properties fix * CB-3098 do not fill session credentials in connection info * CB-3098 default value fix --------- Co-authored-by: EvgeniaBzzz <139753579+EvgeniaBzzz@users.noreply.github.com> --- .../src/io/cloudbeaver/model/WebConnectionInfo.java | 3 +-- .../src/io/cloudbeaver/model/WebPropertyInfo.java | 3 ++- .../src/io/cloudbeaver/model/WebDatabaseAuthModel.java | 9 ++++++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java index 69a082315e..5e48356fcd 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java @@ -322,9 +322,8 @@ public class WebConnectionInfo { return new WebPropertyInfo[0]; } - // Fill session and user provided credentials + // Fill user provided credentials DBPConnectionConfiguration configWithAuth = new DBPConnectionConfiguration(dataSourceContainer.getConnectionConfiguration()); - session.provideAuthParameters(session.getProgressMonitor(), dataSourceContainer, configWithAuth); // show all properties if it is a manual connection Predicate predicate = CommonUtils.isEmpty(getRequiredAuth()) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebPropertyInfo.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebPropertyInfo.java index 0cc54dabd2..631d002767 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebPropertyInfo.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebPropertyInfo.java @@ -116,7 +116,8 @@ public class WebPropertyInfo { @Property public Object getDefaultValue() throws DBException { - return property.getDefaultValue(); + var defaultValue = property.getDefaultValue(); + return defaultValue == null ? getValue() : defaultValue; } @Property diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/WebDatabaseAuthModel.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/WebDatabaseAuthModel.java index fd8aa2ddfe..cd5009bbe3 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/WebDatabaseAuthModel.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/WebDatabaseAuthModel.java @@ -19,12 +19,15 @@ package io.cloudbeaver.model; import io.cloudbeaver.DBWebException; import io.cloudbeaver.WebServiceUtils; import io.cloudbeaver.model.session.WebSession; +import io.cloudbeaver.utils.WebCommonUtils; import org.jkiss.dbeaver.model.connection.DBPAuthModelDescriptor; import org.jkiss.dbeaver.model.meta.Property; +import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor; import org.jkiss.dbeaver.model.preferences.DBPPropertySource; import org.jkiss.utils.CommonUtils; import java.util.Arrays; +import java.util.function.Predicate; /** * WebDatabaseAuthModel @@ -73,8 +76,12 @@ public class WebDatabaseAuthModel { public WebPropertyInfo[] getProperties() throws DBWebException { DBPPropertySource credentialsSource = model.createCredentialsSource(null, null); + Predicate predicate = CommonUtils.isEmpty(getRequiredAuth()) + ? p -> true + : p -> WebCommonUtils.isAuthPropertyApplicable(p, webSession.getContextCredentialsProviders()); + return Arrays.stream(credentialsSource.getProperties()) - .filter(p -> WebServiceUtils.isAuthPropertyApplicable(p, webSession.getContextCredentialsProviders())) + .filter(predicate) .map(p -> new WebPropertyInfo(webSession, p, credentialsSource)).toArray(WebPropertyInfo[]::new); }