diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/registry/WebAuthProviderDescriptor.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/registry/WebAuthProviderDescriptor.java index 40ef7acbee..831d6eba0a 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/registry/WebAuthProviderDescriptor.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/registry/WebAuthProviderDescriptor.java @@ -55,6 +55,7 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor { private final boolean trusted; private final boolean isPrivate; private final String[] requiredFeatures; + private final boolean isRequired; public WebAuthProviderDescriptor(IConfigurationElement cfg) { super(cfg); @@ -64,6 +65,7 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor { this.configurable = CommonUtils.toBoolean(cfg.getAttribute("configurable")); this.trusted = CommonUtils.toBoolean(cfg.getAttribute("trusted")); this.isPrivate = CommonUtils.toBoolean(cfg.getAttribute("private")); + this.isRequired = CommonUtils.toBoolean(cfg.getAttribute("required")); for (IConfigurationElement cfgElement : cfg.getChildren("configuration")) { for (IConfigurationElement propGroup : ArrayUtils.safeArray(cfgElement.getChildren(PropertyDescriptor.TAG_PROPERTY_GROUP))) { @@ -124,6 +126,10 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor { return isPrivate; } + public boolean isRequired() { + return isRequired; + } + public List getConfigurationParameters() { return new ArrayList<>(configurationParameters.values()); } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/user/WebAuthProviderInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/user/WebAuthProviderInfo.java index d5f2dee003..9175b980dd 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/user/WebAuthProviderInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/user/WebAuthProviderInfo.java @@ -83,6 +83,10 @@ public class WebAuthProviderInfo { return descriptor.isPrivate(); } + public boolean isRequired() { + return descriptor.isRequired(); + } + public boolean isSupportProvisioning() { return descriptor.getInstance() instanceof SMProvisioner; } diff --git a/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls b/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls index 865aa3b9fa..82530a3bc7 100644 --- a/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls +++ b/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls @@ -72,6 +72,8 @@ type AuthProviderInfo { credentialProfiles: [AuthProviderCredentialsProfile!]! requiredFeatures: [String!]! + + required: Boolean! } type AuthInfo { diff --git a/server/bundles/io.cloudbeaver.service.security/plugin.xml b/server/bundles/io.cloudbeaver.service.security/plugin.xml index b26bf58784..88eff847ae 100644 --- a/server/bundles/io.cloudbeaver.service.security/plugin.xml +++ b/server/bundles/io.cloudbeaver.service.security/plugin.xml @@ -9,8 +9,8 @@ icon="platform:/plugin/org.jkiss.dbeaver.model/icons/tree/key.png"> - - + +