From a85d2c5b2a5e4238cab8a495fb7fd3ddb102d70a Mon Sep 17 00:00:00 2001 From: Alexander Skoblikov Date: Fri, 22 Apr 2022 14:51:33 +0300 Subject: [PATCH] CB-1908 user flow fixes --- .../src/io/cloudbeaver/model/session/WebSession.java | 2 +- .../service/auth/impl/WebServiceAuthImpl.java | 2 +- .../service/security/internal/CBSecurityController.java | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) 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 efa7565941..456c6785e5 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 @@ -890,7 +890,7 @@ public class WebSession extends AbstractSessionPersistent implements SMSession, this.sessionPermissions = null; this.smCredentials = null; this.user = null; - this.securityController = application.getSecurityController(null); + this.securityController = application.getSecurityController(this); this.adminSecurityController = null; } 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 1af80d7f8b..bcc0adf027 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 @@ -77,7 +77,7 @@ public class WebServiceAuthImpl implements DBWServiceAuth { // Check enabled auth providers boolean providerEnabled = isProviderEnabled(providerId, authProvider); - boolean resetUserStateOnError = webSession.getUser() != null; + boolean resetUserStateOnError = webSession.getUser() == null; try { Map providerConfig = Collections.emptyMap(); diff --git a/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBSecurityController.java b/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBSecurityController.java index ad6bb51c13..a7e3ac09fe 100644 --- a/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBSecurityController.java +++ b/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBSecurityController.java @@ -849,11 +849,12 @@ public class CBSecurityController implements SMAdminController if (!isSubjectExists(userId)) { var newUser = new WebUser(userId); createUser(newUser.getUserId(), newUser.getMetaParameters()); + String defaultRoleName = WebAppUtils.getWebApplication().getAppConfiguration().getDefaultUserRole(); + if (!CommonUtils.isEmpty(defaultRoleName)) { + setUserRoles(userId, new String[]{defaultRoleName}, userId); + } } - String defaultRoleName = WebAppUtils.getWebApplication().getAppConfiguration().getDefaultUserRole(); - if (!CommonUtils.isEmpty(defaultRoleName)) { - setUserRoles(userId, new String[]{defaultRoleName}, userId); - } + setUserCredentials(userId, authProviderId, userCredentials); return userId;