Compare commits
2 Commits
9db284388b
...
86cfd9cf57
Author | SHA1 | Date |
---|---|---|
knoflook | 86cfd9cf57 | |
knoflook | cc4c0867f1 |
2
pom.xml
2
pom.xml
|
@ -1,6 +1,6 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.micedre.keycloak</groupId>
|
<groupId>com.github.thomasdarimont.keycloak</groupId>
|
||||||
<artifactId>keycloak-mail-whitelisting</artifactId>
|
<artifactId>keycloak-mail-whitelisting</artifactId>
|
||||||
<version>1.9-SNAPSHOT</version>
|
<version>1.9-SNAPSHOT</version>
|
||||||
|
|
||||||
|
|
|
@ -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,23 @@ 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 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 {
|
public abstract class RegistrationProfileDomainValidation 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 +92,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,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,2 +1,3 @@
|
||||||
net.micedre.keycloak.registration.RegistrationProfileWithMailDomainCheck
|
com.thomasdarimont.keycloak.auth.CustomRegistrationUserCreation
|
||||||
net.micedre.keycloak.registration.RegistrationProfileWithDomainBlock
|
com.thomasdarimont.keycloak.auth.RegistrationProfileWithDomainBlock
|
||||||
|
com.thomasdarimont.keycloak.auth.RegistrationProfileWithMailDomainCheck
|
||||||
|
|
Loading…
Reference in New Issue