diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java index f00dd02e59..5f10fc36c3 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java @@ -52,7 +52,10 @@ import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.BaseProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.ProxyProgressMonitor; -import org.jkiss.dbeaver.model.security.*; +import org.jkiss.dbeaver.model.security.SMConstants; +import org.jkiss.dbeaver.model.security.SMController; +import org.jkiss.dbeaver.model.security.SMDataSourceGrant; +import org.jkiss.dbeaver.model.security.SMSessionType; import org.jkiss.dbeaver.model.sql.DBQuotaException; import org.jkiss.dbeaver.registry.DataSourceDescriptor; import org.jkiss.dbeaver.registry.DataSourceRegistry; @@ -747,10 +750,11 @@ public class WebSession extends AbstractSessionPersistent implements SMSession, } newUser = authInfo.getUser(); } -// if (this.user == null && newUser != null) { -// forceUserRefresh(newUser); -// } else - if (!CommonUtils.equalObjects(this.user, newUser)) { + if (application.isConfigurationMode() && this.user == null && newUser != null) { + //FIXME hotfix to avoid exception after external auth provider login in easy config + this.user = newUser; + refreshUserData(); + } else if (!CommonUtils.equalObjects(this.user, newUser)) { throw new DBException("Can't authorize different users in the single session"); } diff --git a/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/impl/WebServiceAuthImpl.java b/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/impl/WebServiceAuthImpl.java index 5a26b75622..7b8260696b 100644 --- a/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/impl/WebServiceAuthImpl.java +++ b/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/impl/WebServiceAuthImpl.java @@ -17,10 +17,6 @@ package io.cloudbeaver.service.auth.impl; import io.cloudbeaver.DBWConstants; -import org.jkiss.dbeaver.model.auth.SMAuthInfo; -import org.jkiss.dbeaver.model.auth.SMAuthProvider; -import org.jkiss.dbeaver.model.auth.SMSession; -import org.jkiss.dbeaver.model.security.SMController; import io.cloudbeaver.DBWUserIdentity; import io.cloudbeaver.DBWebException; import io.cloudbeaver.auth.SMAuthProviderExternal; @@ -40,7 +36,11 @@ import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; +import org.jkiss.dbeaver.model.auth.SMAuthInfo; +import org.jkiss.dbeaver.model.auth.SMAuthProvider; +import org.jkiss.dbeaver.model.auth.SMSession; import org.jkiss.dbeaver.model.exec.DBCException; +import org.jkiss.dbeaver.model.security.SMController; import org.jkiss.dbeaver.model.security.exception.SMException; import org.jkiss.dbeaver.registry.auth.AuthProviderDescriptor; import org.jkiss.dbeaver.registry.auth.AuthProviderRegistry; @@ -197,7 +197,7 @@ public class WebServiceAuthImpl implements DBWServiceAuth { if (user == null) { user = new WebUser(userId); } - if (smAuthInfo == null && !webSession.isAuthorizedInSecurityManager()) { + if (!configMode && smAuthInfo == null && !webSession.isAuthorizedInSecurityManager()) { throw new DBCException("No authorization in the security manager"); }