diff --git a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.5.0.xml b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.5.0.xml new file mode 100755 index 0000000000..4f33cf7cfa --- /dev/null +++ b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.5.0.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml index efba42ce0f..ca5d0e9b38 100755 --- a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml +++ b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml @@ -8,4 +8,5 @@ + diff --git a/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java b/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java index dbcc833245..c1f58433a4 100755 --- a/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java +++ b/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java @@ -12,7 +12,7 @@ public interface JpaUpdaterProvider extends Provider { public String FIRST_VERSION = "1.0.0.Final"; - public String LAST_VERSION = "1.4.0"; + public String LAST_VERSION = "1.5.0"; public String getCurrentVersionSql(String defaultSchema); diff --git a/model/api/src/main/java/org/keycloak/models/AuthenticationExecutionModel.java b/model/api/src/main/java/org/keycloak/models/AuthenticationExecutionModel.java index c4f1b6bc57..acb3975e26 100755 --- a/model/api/src/main/java/org/keycloak/models/AuthenticationExecutionModel.java +++ b/model/api/src/main/java/org/keycloak/models/AuthenticationExecutionModel.java @@ -25,7 +25,6 @@ public class AuthenticationExecutionModel implements Serializable { private String flowId; private boolean authenticatorFlow; private Requirement requirement; - private boolean userSetupAllowed; private int priority; private String parentFlow; @@ -69,14 +68,6 @@ public class AuthenticationExecutionModel implements Serializable { this.priority = priority; } - public boolean isUserSetupAllowed() { - return userSetupAllowed; - } - - public void setUserSetupAllowed(boolean userSetupAllowed) { - this.userSetupAllowed = userSetupAllowed; - } - public String getParentFlow() { return parentFlow; } diff --git a/model/api/src/main/java/org/keycloak/models/utils/DefaultAuthenticationFlows.java b/model/api/src/main/java/org/keycloak/models/utils/DefaultAuthenticationFlows.java index a2c6422a87..7995887b81 100755 --- a/model/api/src/main/java/org/keycloak/models/utils/DefaultAuthenticationFlows.java +++ b/model/api/src/main/java/org/keycloak/models/utils/DefaultAuthenticationFlows.java @@ -55,7 +55,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.REQUIRED); execution.setAuthenticator("registration-page-form"); execution.setPriority(10); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(true); execution.setFlowId(registrationFormFlow.getId()); realm.addAuthenticatorExecution(execution); @@ -65,7 +64,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.REQUIRED); execution.setAuthenticator("registration-user-creation"); execution.setPriority(20); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -74,7 +72,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.REQUIRED); execution.setAuthenticator("registration-profile-action"); execution.setPriority(40); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -83,7 +80,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.REQUIRED); execution.setAuthenticator("registration-password-action"); execution.setPriority(50); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -99,7 +95,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.DISABLED); execution.setAuthenticator("registration-recaptcha-action"); execution.setPriority(60); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); //execution.setAuthenticatorConfig(captchaConfig.getId()); realm.addAuthenticatorExecution(execution); @@ -137,7 +132,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.REQUIRED); execution.setAuthenticator("direct-grant-validate-username"); execution.setPriority(10); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -150,7 +144,6 @@ public class DefaultAuthenticationFlows { } execution.setAuthenticator("direct-grant-validate-password"); execution.setPriority(20); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -163,7 +156,6 @@ public class DefaultAuthenticationFlows { } execution.setAuthenticator("direct-grant-validate-otp"); execution.setPriority(30); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -184,7 +176,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.ALTERNATIVE); execution.setAuthenticator("auth-cookie"); execution.setPriority(10); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); execution = new AuthenticationExecutionModel(); @@ -196,7 +187,6 @@ public class DefaultAuthenticationFlows { } execution.setAuthenticator("auth-spnego"); execution.setPriority(20); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -213,7 +203,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.ALTERNATIVE); execution.setFlowId(forms.getId()); execution.setPriority(30); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(true); realm.addAuthenticatorExecution(execution); @@ -224,7 +213,6 @@ public class DefaultAuthenticationFlows { execution.setRequirement(AuthenticationExecutionModel.Requirement.REQUIRED); execution.setAuthenticator("auth-username-password-form"); execution.setPriority(10); - execution.setUserSetupAllowed(false); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); @@ -239,7 +227,6 @@ public class DefaultAuthenticationFlows { execution.setAuthenticator("auth-otp-form"); execution.setPriority(20); - execution.setUserSetupAllowed(true); execution.setAuthenticatorFlow(false); realm.addAuthenticatorExecution(execution); } diff --git a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java index 9e1b44e758..3fcde28996 100755 --- a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java +++ b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java @@ -468,7 +468,6 @@ public class ModelToRepresentation { rep.setFlowAlias(flow.getAlias()); } rep.setPriority(model.getPriority()); - rep.setUserSetupAllowed(model.isUserSetupAllowed()); rep.setRequirement(model.getRequirement().name()); return rep; } diff --git a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java index fe08937966..92060b01ef 100755 --- a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java +++ b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java @@ -1083,7 +1083,6 @@ public class RepresentationToModel { model.setFlowId(flow.getId()); } model.setPriority(rep.getPriority()); - model.setUserSetupAllowed(rep.isUserSetupAllowed()); model.setRequirement(AuthenticationExecutionModel.Requirement.valueOf(rep.getRequirement())); return model; } diff --git a/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java b/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java index 3d67e93e1f..c2d85d3ba0 100755 --- a/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java +++ b/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java @@ -1308,7 +1308,6 @@ public class RealmAdapter implements RealmModel { public AuthenticationExecutionModel entityToModel(AuthenticationExecutionEntity entity) { AuthenticationExecutionModel model = new AuthenticationExecutionModel(); model.setId(entity.getId()); - model.setUserSetupAllowed(entity.isUserSetupAllowed()); model.setRequirement(entity.getRequirement()); model.setPriority(entity.getPriority()); model.setAuthenticator(entity.getAuthenticator()); @@ -1345,7 +1344,6 @@ public class RealmAdapter implements RealmModel { entity.setAuthenticator(model.getAuthenticator()); entity.setPriority(model.getPriority()); entity.setRequirement(model.getRequirement()); - entity.setUserSetupAllowed(model.isUserSetupAllowed()); entity.setAuthenticatorFlow(model.isAuthenticatorFlow()); entity.setFlowId(model.getFlowId()); entity.setAuthenticatorConfig(model.getAuthenticatorConfig()); @@ -1371,7 +1369,6 @@ public class RealmAdapter implements RealmModel { entity.setPriority(model.getPriority()); entity.setRequirement(model.getRequirement()); entity.setFlowId(model.getFlowId()); - entity.setUserSetupAllowed(model.isUserSetupAllowed()); entity.setAuthenticatorConfig(model.getAuthenticatorConfig()); } diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java index f3d44b19d5..c7dcf5aef3 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java @@ -1622,7 +1622,6 @@ public class RealmAdapter implements RealmModel { public AuthenticationExecutionModel entityToModel(AuthenticationExecutionEntity entity) { AuthenticationExecutionModel model = new AuthenticationExecutionModel(); model.setId(entity.getId()); - model.setUserSetupAllowed(entity.isUserSetupAllowed()); model.setRequirement(entity.getRequirement()); model.setPriority(entity.getPriority()); model.setAuthenticator(entity.getAuthenticator()); @@ -1654,7 +1653,6 @@ public class RealmAdapter implements RealmModel { entity.setParentFlow(flow); flow.getExecutions().add(entity); entity.setRealm(realm); - entity.setUserSetupAllowed(model.isUserSetupAllowed()); entity.setAutheticatorFlow(model.isAuthenticatorFlow()); em.persist(entity); em.flush(); @@ -1671,7 +1669,6 @@ public class RealmAdapter implements RealmModel { entity.setAuthenticator(model.getAuthenticator()); entity.setPriority(model.getPriority()); entity.setRequirement(model.getRequirement()); - entity.setUserSetupAllowed(model.isUserSetupAllowed()); entity.setAuthenticatorConfig(model.getAuthenticatorConfig()); entity.setFlowId(model.getFlowId()); em.flush(); diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationExecutionEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationExecutionEntity.java index 60dfccd3de..574849f489 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationExecutionEntity.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationExecutionEntity.java @@ -51,9 +51,6 @@ public class AuthenticationExecutionEntity { @Column(name="PRIORITY") protected int priority; - @Column(name="USER_SETUP_ALLOWED") - private boolean userSetupAllowed; - @Column(name="AUTHENTICATOR_FLOW") private boolean autheticatorFlow; @@ -97,14 +94,6 @@ public class AuthenticationExecutionEntity { this.priority = priority; } - public boolean isUserSetupAllowed() { - return userSetupAllowed; - } - - public void setUserSetupAllowed(boolean userSetupAllowed) { - this.userSetupAllowed = userSetupAllowed; - } - public boolean isAutheticatorFlow() { return autheticatorFlow; } diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java index 28b1c4ddd9..795ccbf29d 100755 --- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java +++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java @@ -1384,7 +1384,6 @@ public class RealmAdapter extends AbstractMongoAdapter impleme public AuthenticationExecutionModel entityToModel(AuthenticationExecutionEntity entity) { AuthenticationExecutionModel model = new AuthenticationExecutionModel(); model.setId(entity.getId()); - model.setUserSetupAllowed(entity.isUserSetupAllowed()); model.setRequirement(entity.getRequirement()); model.setPriority(entity.getPriority()); model.setAuthenticator(entity.getAuthenticator()); @@ -1421,7 +1420,6 @@ public class RealmAdapter extends AbstractMongoAdapter impleme entity.setAuthenticator(model.getAuthenticator()); entity.setPriority(model.getPriority()); entity.setRequirement(model.getRequirement()); - entity.setUserSetupAllowed(model.isUserSetupAllowed()); entity.setAuthenticatorFlow(model.isAuthenticatorFlow()); entity.setFlowId(model.getFlowId()); entity.setParentFlow(model.getParentFlow()); @@ -1449,7 +1447,6 @@ public class RealmAdapter extends AbstractMongoAdapter impleme entity.setPriority(model.getPriority()); entity.setRequirement(model.getRequirement()); entity.setFlowId(model.getFlowId()); - entity.setUserSetupAllowed(model.isUserSetupAllowed()); entity.setAuthenticatorConfig(model.getAuthenticatorConfig()); updateMongoEntity(); } diff --git a/services/src/main/java/org/keycloak/authentication/ConfigurableAuthenticatorFactory.java b/services/src/main/java/org/keycloak/authentication/ConfigurableAuthenticatorFactory.java index 9e8705af95..ab807ca28b 100755 --- a/services/src/main/java/org/keycloak/authentication/ConfigurableAuthenticatorFactory.java +++ b/services/src/main/java/org/keycloak/authentication/ConfigurableAuthenticatorFactory.java @@ -25,4 +25,14 @@ public interface ConfigurableAuthenticatorFactory extends ConfiguredProvider { * @return */ AuthenticationExecutionModel.Requirement[] getRequirementChoices(); + + /** + * + * Does this authenticator have required actions that can set if the user does not have + * this authenticator set up? + * + * + * @return + */ + boolean isUserSetupAllowed(); } diff --git a/services/src/main/java/org/keycloak/authentication/DefaultAuthenticationFlow.java b/services/src/main/java/org/keycloak/authentication/DefaultAuthenticationFlow.java index be92d6ee02..a84131a712 100755 --- a/services/src/main/java/org/keycloak/authentication/DefaultAuthenticationFlow.java +++ b/services/src/main/java/org/keycloak/authentication/DefaultAuthenticationFlow.java @@ -124,7 +124,7 @@ public class DefaultAuthenticationFlow implements AuthenticationFlow { configuredFor = authenticator.configuredFor(processor.getSession(), processor.getRealm(), authUser); if (!configuredFor) { if (model.isRequired()) { - if (model.isUserSetupAllowed()) { + if (factory.isUserSetupAllowed()) { AuthenticationProcessor.logger.debugv("authenticator SETUP_REQUIRED: {0}", factory.getId()); processor.getClientSession().setExecutionStatus(model.getId(), ClientSessionModel.ExecutionStatus.SETUP_REQUIRED); authenticator.setRequiredActions(processor.getSession(), processor.getRealm(), processor.getClientSession().getAuthenticatedUser()); diff --git a/services/src/main/java/org/keycloak/authentication/FormAuthenticationFlow.java b/services/src/main/java/org/keycloak/authentication/FormAuthenticationFlow.java index 782c8629ff..d24474039c 100755 --- a/services/src/main/java/org/keycloak/authentication/FormAuthenticationFlow.java +++ b/services/src/main/java/org/keycloak/authentication/FormAuthenticationFlow.java @@ -152,7 +152,8 @@ public class FormAuthenticationFlow implements AuthenticationFlow { executionStatus.put(formActionExecution.getId(), ClientSessionModel.ExecutionStatus.SKIPPED); continue; } - FormAction action = processor.getSession().getProvider(FormAction.class, formActionExecution.getAuthenticator()); + FormActionFactory factory = (FormActionFactory)processor.getSession().getKeycloakSessionFactory().getProviderFactory(FormAction.class, formActionExecution.getAuthenticator()); + FormAction action = factory.create(processor.getSession()); UserModel authUser = processor.getClientSession().getAuthenticatedUser(); if (action.requiresUser() && authUser == null) { @@ -163,7 +164,7 @@ public class FormAuthenticationFlow implements AuthenticationFlow { configuredFor = action.configuredFor(processor.getSession(), processor.getRealm(), authUser); if (!configuredFor) { if (formActionExecution.isRequired()) { - if (formActionExecution.isUserSetupAllowed()) { + if (factory.isUserSetupAllowed()) { AuthenticationProcessor.logger.debugv("authenticator SETUP_REQUIRED: {0}", formExecution.getAuthenticator()); executionStatus.put(formActionExecution.getId(), ClientSessionModel.ExecutionStatus.SETUP_REQUIRED); requiredActions.add(action); diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/browser/CookieAuthenticatorFactory.java b/services/src/main/java/org/keycloak/authentication/authenticators/browser/CookieAuthenticatorFactory.java index da9209dacb..4845b12a43 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/browser/CookieAuthenticatorFactory.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/browser/CookieAuthenticatorFactory.java @@ -78,4 +78,10 @@ public class CookieAuthenticatorFactory implements AuthenticatorFactory { public List getConfigProperties() { return null; } + + @Override + public boolean isUserSetupAllowed() { + return false; + } + } diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/browser/OTPFormAuthenticatorFactory.java b/services/src/main/java/org/keycloak/authentication/authenticators/browser/OTPFormAuthenticatorFactory.java index 29b1c636cb..1a01e5a8f3 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/browser/OTPFormAuthenticatorFactory.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/browser/OTPFormAuthenticatorFactory.java @@ -59,6 +59,11 @@ public class OTPFormAuthenticatorFactory implements AuthenticatorFactory { return false; } + @Override + public boolean isUserSetupAllowed() { + return true; + } + public static final AuthenticationExecutionModel.Requirement[] REQUIREMENT_CHOICES = { AuthenticationExecutionModel.Requirement.REQUIRED, AuthenticationExecutionModel.Requirement.OPTIONAL, diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/browser/SpnegoAuthenticatorFactory.java b/services/src/main/java/org/keycloak/authentication/authenticators/browser/SpnegoAuthenticatorFactory.java index 462967580e..ecfa06863b 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/browser/SpnegoAuthenticatorFactory.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/browser/SpnegoAuthenticatorFactory.java @@ -84,4 +84,10 @@ public class SpnegoAuthenticatorFactory implements AuthenticatorFactory { public List getConfigProperties() { return null; } + + @Override + public boolean isUserSetupAllowed() { + return false; + } + } diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/browser/UsernamePasswordFormFactory.java b/services/src/main/java/org/keycloak/authentication/authenticators/browser/UsernamePasswordFormFactory.java index adc2815b48..392a02abae 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/browser/UsernamePasswordFormFactory.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/browser/UsernamePasswordFormFactory.java @@ -81,4 +81,10 @@ public class UsernamePasswordFormFactory implements AuthenticatorFactory { public List getConfigProperties() { return null; } + + @Override + public boolean isUserSetupAllowed() { + return false; + } + } diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateOTP.java b/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateOTP.java index 8a71f52a87..7d4da65165 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateOTP.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateOTP.java @@ -82,6 +82,12 @@ public class ValidateOTP extends AbstractDirectGrantAuthenticator { } + @Override + public boolean isUserSetupAllowed() { + return false; + } + + @Override public String getDisplayType() { return "OTP"; diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidatePassword.java b/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidatePassword.java index 55ba2f8278..792fd5ef76 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidatePassword.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidatePassword.java @@ -73,6 +73,12 @@ public class ValidatePassword extends AbstractDirectGrantAuthenticator { } + @Override + public boolean isUserSetupAllowed() { + return false; + } + + @Override public String getDisplayType() { return "Password"; diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateUsername.java b/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateUsername.java index 330860b1a6..5a9cd800b2 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateUsername.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/directgrant/ValidateUsername.java @@ -103,6 +103,12 @@ public class ValidateUsername extends AbstractDirectGrantAuthenticator { } + @Override + public boolean isUserSetupAllowed() { + return false; + } + + @Override public String getDisplayType() { return "Username Validation"; diff --git a/services/src/main/java/org/keycloak/authentication/forms/RegistrationPage.java b/services/src/main/java/org/keycloak/authentication/forms/RegistrationPage.java index 37c0d238cc..8748b54803 100755 --- a/services/src/main/java/org/keycloak/authentication/forms/RegistrationPage.java +++ b/services/src/main/java/org/keycloak/authentication/forms/RegistrationPage.java @@ -82,6 +82,11 @@ public class RegistrationPage implements FormAuthenticator, FormAuthenticatorFac } + @Override + public boolean isUserSetupAllowed() { + return false; + } + @Override public void postInit(KeycloakSessionFactory factory) { diff --git a/services/src/main/java/org/keycloak/authentication/forms/RegistrationPassword.java b/services/src/main/java/org/keycloak/authentication/forms/RegistrationPassword.java index 92c87f67f1..9cf771dd57 100755 --- a/services/src/main/java/org/keycloak/authentication/forms/RegistrationPassword.java +++ b/services/src/main/java/org/keycloak/authentication/forms/RegistrationPassword.java @@ -105,6 +105,11 @@ public class RegistrationPassword implements FormAction, FormActionFactory { } + @Override + public boolean isUserSetupAllowed() { + return false; + } + @Override public void close() { diff --git a/services/src/main/java/org/keycloak/authentication/forms/RegistrationProfile.java b/services/src/main/java/org/keycloak/authentication/forms/RegistrationProfile.java index 46c4bdaf4c..2019db8026 100755 --- a/services/src/main/java/org/keycloak/authentication/forms/RegistrationProfile.java +++ b/services/src/main/java/org/keycloak/authentication/forms/RegistrationProfile.java @@ -110,6 +110,12 @@ public class RegistrationProfile implements FormAction, FormActionFactory { } + @Override + public boolean isUserSetupAllowed() { + return false; + } + + @Override public void close() { diff --git a/services/src/main/java/org/keycloak/authentication/forms/RegistrationRecaptcha.java b/services/src/main/java/org/keycloak/authentication/forms/RegistrationRecaptcha.java index 8f143ed742..b4bb3b0486 100755 --- a/services/src/main/java/org/keycloak/authentication/forms/RegistrationRecaptcha.java +++ b/services/src/main/java/org/keycloak/authentication/forms/RegistrationRecaptcha.java @@ -158,6 +158,12 @@ public class RegistrationRecaptcha implements FormAction, FormActionFactory, Con } + @Override + public boolean isUserSetupAllowed() { + return false; + } + + @Override public void close() { diff --git a/services/src/main/java/org/keycloak/authentication/forms/RegistrationUserCreation.java b/services/src/main/java/org/keycloak/authentication/forms/RegistrationUserCreation.java index 98659572bf..0a446dab15 100755 --- a/services/src/main/java/org/keycloak/authentication/forms/RegistrationUserCreation.java +++ b/services/src/main/java/org/keycloak/authentication/forms/RegistrationUserCreation.java @@ -149,6 +149,12 @@ public class RegistrationUserCreation implements FormAction, FormActionFactory { } + @Override + public boolean isUserSetupAllowed() { + return false; + } + + @Override public void close() {