wip????
This commit is contained in:
parent
9db284388b
commit
cc4c0867f1
@ -1,5 +1,5 @@
|
|||||||
package net.micedre.keycloak.registration;
|
package com.github.thomasdarimont.keycloak.auth;
|
||||||
|
//
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.authentication.FormAction;
|
import org.keycloak.authentication.FormAction;
|
||||||
import org.keycloak.authentication.ValidationContext;
|
import org.keycloak.authentication.ValidationContext;
|
||||||
@ -10,16 +10,25 @@ import org.keycloak.events.Errors;
|
|||||||
import org.keycloak.models.AuthenticatorConfigModel;
|
import org.keycloak.models.AuthenticatorConfigModel;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
|
import org.keycloak.models.UserModel;
|
||||||
import org.keycloak.models.utils.FormMessage;
|
import org.keycloak.models.utils.FormMessage;
|
||||||
import org.keycloak.services.messages.Messages;
|
import org.keycloak.services.messages.Messages;
|
||||||
import org.keycloak.services.validation.Validation;
|
import org.keycloak.services.validation.Validation;
|
||||||
import org.keycloak.storage.adapter.AbstractUserAdapter;
|
|
||||||
|
|
||||||
import jakarta.ws.rs.core.MultivaluedMap;
|
import jakarta.ws.rs.core.MultivaluedMap;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
//
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
import org.keycloak.authentication.FormActionFactory;
|
||||||
|
import org.keycloak.authentication.FormContext;
|
||||||
|
import org.keycloak.authentication.forms.RegistrationUserCreation;
|
||||||
|
import org.keycloak.events.Errors;
|
||||||
|
import org.keycloak.forms.login.LoginFormsProvider;
|
||||||
|
import org.keycloak.models.utils.FormMessage;
|
||||||
|
|
||||||
public abstract class RegistrationProfileDomainValidation extends RegistrationProfile implements FormAction {
|
@AutoService(FormActionFactory.class)
|
||||||
|
public class CustomRegistrationUserCreation extends RegistrationUserCreation {
|
||||||
protected static final Logger logger = Logger.getLogger(RegistrationProfileDomainValidation.class);
|
protected static final Logger logger = Logger.getLogger(RegistrationProfileDomainValidation.class);
|
||||||
|
|
||||||
protected static final String DEFAULT_DOMAIN_LIST = "example.org";
|
protected static final String DEFAULT_DOMAIN_LIST = "example.org";
|
||||||
@ -85,15 +94,13 @@ public abstract class RegistrationProfileDomainValidation extends RegistrationPr
|
|||||||
boolean emailDomainValid = isEmailValid(email, domainList);
|
boolean emailDomainValid = isEmailValid(email, domainList);
|
||||||
|
|
||||||
if (!emailDomainValid) {
|
if (!emailDomainValid) {
|
||||||
// add user to a "waiting" group
|
super.success(context);
|
||||||
// show a message saying you need to be approved by admin
|
|
||||||
KeycloakSession session = context.getSession();
|
KeycloakSession session = context.getSession();
|
||||||
RealmModel realm = context.getRealm();
|
RealmModel realm = context.getRealm();
|
||||||
AbstractUserAdapter user = new AbstractUserAdapter();
|
UserModel user = context.getUser();
|
||||||
user.addRequiredAction("USER_MUST_BE_APPROVED");
|
user.addRequiredAction("USER_MUST_BE_APPROVED");
|
||||||
setRequiredActions(context.getSession(), context.getRealm(), user);
|
setRequiredActions(session, realm, user);
|
||||||
|
|
||||||
context.success();
|
|
||||||
}
|
}
|
||||||
if (errors.size() > 0) {
|
if (errors.size() > 0) {
|
||||||
context.error(eventError);
|
context.error(eventError);
|
@ -1,4 +1,4 @@
|
|||||||
package net.micedre.keycloak.registration;
|
package com.github.thomasdarimont.keycloak.auth;
|
||||||
|
|
||||||
import org.keycloak.authentication.FormContext;
|
import org.keycloak.authentication.FormContext;
|
||||||
import org.keycloak.forms.login.LoginFormsProvider;
|
import org.keycloak.forms.login.LoginFormsProvider;
|
@ -1,4 +1,17 @@
|
|||||||
package net.micedre.keycloak.registration;
|
package com.github.thomasdarimont.keycloak.auth;
|
||||||
|
|
||||||
|
import org.keycloak.authentication.FormContext;
|
||||||
|
import org.keycloak.forms.login.LoginFormsProvider;
|
||||||
|
import org.keycloak.provider.ProviderConfigProperty;
|
||||||
|
import org.keycloak.models.AuthenticatorConfigModel;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class RegistrationProfileWithMailDomainCheck extends RegistrationProfileDomainValidation {
|
||||||
|
|
||||||
|
public static final String PROVIDER_ID = "registration-mail-check-action";
|
||||||
|
|
||||||
import org.keycloak.authentication.FormContext;
|
import org.keycloak.authentication.FormContext;
|
||||||
import org.keycloak.forms.login.LoginFormsProvider;
|
import org.keycloak.forms.login.LoginFormsProvider;
|
||||||
@ -69,4 +82,4 @@ public class RegistrationProfileWithMailDomainCheck extends RegistrationProfileD
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user