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 9c4b6b6c32..b76bae0e62 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 @@ -821,7 +821,10 @@ public class WebSession extends AbstractSessionPersistent implements SMSession, if (providerId == null) { clearAuthTokens(); } else { - removeAuthInfo(getAuthInfo(providerId)); + WebAuthInfo authInfo = getAuthInfo(providerId); + if (authInfo != null) { + removeAuthInfo(authInfo); + } } if (authTokens.isEmpty()) { resetUserState(); diff --git a/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBEmbeddedSecurityController.java b/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBEmbeddedSecurityController.java index 66ea389e8e..b48c77914e 100644 --- a/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBEmbeddedSecurityController.java +++ b/server/bundles/io.cloudbeaver.service.security/src/io/cloudbeaver/service/security/internal/CBEmbeddedSecurityController.java @@ -359,7 +359,7 @@ public class CBEmbeddedSecurityController implements SMAdminController, SMAuthen /////////////////////////////////////////// // Credentials - private static SMAuthCredentialsProfile getCredentialProfileByParameters(SMAuthProviderDescriptor authProvider, Set keySet) { + private static SMAuthCredentialsProfile getCredentialProfileByParameters(AuthProviderDescriptor authProvider, Set keySet) { List credentialProfiles = authProvider.getCredentialProfiles(); if (credentialProfiles.size() > 1) { for (SMAuthCredentialsProfile profile : credentialProfiles) { @@ -1218,6 +1218,13 @@ public class CBEmbeddedSecurityController implements SMAdminController, SMAuthen return new SMAuthPermissions(userId, sessionId, permissions); } + @Override + public SMAuthProviderDescriptor[] getAvailableAuthProviders() { + return AuthProviderRegistry.getInstance().getAuthProviders().stream() + .filter(ap -> !ap.isTrusted()) + .map(AuthProviderDescriptor::createDescriptorBean).toArray(SMAuthProviderDescriptor[]::new); + } + @Override public void updateSession(@NotNull String sessionId, @Nullable String userId, @NotNull Map parameters) throws DBCException { try (Connection dbCon = database.openConnection()) {