From 3a553deaa559fe13d83ff0ceffecfe285a92d4ec Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Sat, 27 Mar 2021 12:49:07 +0300 Subject: [PATCH] CB-864 Support all auth providers in config mode --- .../cloudbeaver/service/auth/impl/WebServiceAuthImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 c1ce13cff0..a4ea2d48c8 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 @@ -54,7 +54,12 @@ public class WebServiceAuthImpl implements DBWServiceAuth { if (CommonUtils.isEmpty(providerId)) { throw new DBWebException("Missing auth provider parameter"); } - if (!CBApplication.getInstance().isConfigurationMode()) { + boolean configMode = CBApplication.getInstance().isConfigurationMode(); + + if (configMode || webSession.hasPermission(DBWConstants.PERMISSION_ADMIN)) { + // Admin can authorize in any providers + } else { + // Check enabled auth providers String[] enabledAuthProviders = CBApplication.getInstance().getAppConfiguration().getEnabledAuthProviders(); if (enabledAuthProviders != null && !ArrayUtils.contains(enabledAuthProviders, providerId)) { throw new DBWebException("Authentication provider '" + providerId + "' is disabled"); @@ -64,7 +69,6 @@ public class WebServiceAuthImpl implements DBWServiceAuth { if (authProvider == null) { throw new DBWebException("Invalid auth provider '" + providerId + "'"); } - boolean configMode = CBApplication.getInstance().isConfigurationMode(); try { Map providerConfig = Collections.emptyMap();