diff --git a/pom.xml b/pom.xml
index 50fa622..f4249a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
net.micedre.keycloak
keycloak-mail-whitelisting
- 1.7-SNAPSHOT
+ 1.8-SNAPSHOT
Keycloak mail whitelisting extension
A keycloak extension to block non authorized domain to register
@@ -30,9 +30,9 @@
UTF-8
- 1.8
- 1.8
- 19.0.0
+ 17
+ 17
+ 22.0.0
diff --git a/src/main/java/net/micedre/keycloak/registration/RegistrationProfileDomainValidation.java b/src/main/java/net/micedre/keycloak/registration/RegistrationProfileDomainValidation.java
index a853649..c3a1356 100644
--- a/src/main/java/net/micedre/keycloak/registration/RegistrationProfileDomainValidation.java
+++ b/src/main/java/net/micedre/keycloak/registration/RegistrationProfileDomainValidation.java
@@ -1,5 +1,6 @@
package net.micedre.keycloak.registration;
+import org.jboss.logging.Logger;
import org.keycloak.authentication.FormAction;
import org.keycloak.authentication.ValidationContext;
import org.keycloak.authentication.forms.RegistrationPage;
@@ -11,18 +12,18 @@ import org.keycloak.models.utils.FormMessage;
import org.keycloak.services.messages.Messages;
import org.keycloak.services.validation.Validation;
-import javax.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.MultivaluedMap;
import java.util.ArrayList;
import java.util.List;
public abstract class RegistrationProfileDomainValidation extends RegistrationProfile implements FormAction {
+ protected static final Logger logger = Logger.getLogger(RegistrationProfileDomainValidation.class);
- protected static String domainListConfigName;
protected static final String DEFAULT_DOMAIN_LIST = "example.org";
protected static final String DOMAIN_LIST_SEPARATOR = "##";
@Override
- public boolean isConfigurable() {
+ public boolean isConfigurable() {
return true;
}
@@ -76,7 +77,8 @@ public abstract class RegistrationProfileDomainValidation extends RegistrationPr
return;
}
- String[] domainList = mailDomainConfig.getConfig().getOrDefault(domainListConfigName, DEFAULT_DOMAIN_LIST).split(DOMAIN_LIST_SEPARATOR);
+ String[] domainList = getDomainList(mailDomainConfig);
+
boolean emailDomainValid = isEmailValid(email, domainList);
if (!emailDomainValid) {
@@ -91,6 +93,8 @@ public abstract class RegistrationProfileDomainValidation extends RegistrationPr
}
}
+ public abstract String[] getDomainList(AuthenticatorConfigModel mailDomainConfig);
+
public abstract boolean isEmailValid(String email, String[] domains);
}
diff --git a/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithDomainBlock.java b/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithDomainBlock.java
index 7d9986f..4298b0f 100644
--- a/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithDomainBlock.java
+++ b/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithDomainBlock.java
@@ -1,21 +1,23 @@
package net.micedre.keycloak.registration;
+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;
-import org.keycloak.authentication.FormContext;
-import org.keycloak.forms.login.LoginFormsProvider;
-import org.keycloak.provider.ProviderConfigProperty;
-
public class RegistrationProfileWithDomainBlock extends RegistrationProfileDomainValidation {
public static final String PROVIDER_ID = "registration-domain-block-action";
+
private static final List CONFIG_PROPERTIES = new ArrayList<>();
- static {
- domainListConfigName = "invalidDomains";
+ public static String domainListConfigName = "invalidDomains";
+ static {
ProviderConfigProperty property;
property = new ProviderConfigProperty();
property.setName(domainListConfigName);
@@ -26,7 +28,7 @@ public class RegistrationProfileWithDomainBlock extends RegistrationProfileDomai
}
@Override
- public String getDisplayType() {
+ public String getDisplayType() {
return "Profile Validation with domain block";
}
@@ -52,6 +54,11 @@ public class RegistrationProfileWithDomainBlock extends RegistrationProfileDomai
form.setAttribute("unauthorizedMailDomains", unauthorizedMailDomains);
}
+ @Override
+ public String[] getDomainList(AuthenticatorConfigModel mailDomainConfig) {
+ return mailDomainConfig.getConfig().getOrDefault(domainListConfigName, DEFAULT_DOMAIN_LIST).split(DOMAIN_LIST_SEPARATOR);
+ }
+
@Override
public boolean isEmailValid(String email, String[] domains) {
for (String domain : domains) {
diff --git a/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithMailDomainCheck.java b/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithMailDomainCheck.java
index 6bf3596..3437e7e 100644
--- a/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithMailDomainCheck.java
+++ b/src/main/java/net/micedre/keycloak/registration/RegistrationProfileWithMailDomainCheck.java
@@ -3,6 +3,7 @@ package net.micedre.keycloak.registration;
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;
@@ -14,9 +15,9 @@ public class RegistrationProfileWithMailDomainCheck extends RegistrationProfileD
private static final List CONFIG_PROPERTIES = new ArrayList<>();
- static {
- domainListConfigName = "validDomains";
+ public static String domainListConfigName = "validDomains";
+ static {
ProviderConfigProperty property;
property = new ProviderConfigProperty();
property.setName(domainListConfigName);
@@ -53,6 +54,11 @@ public class RegistrationProfileWithMailDomainCheck extends RegistrationProfileD
form.setAttribute("authorizedMailDomains", authorizedMailDomains);
}
+ @Override
+ public String[] getDomainList(AuthenticatorConfigModel mailDomainConfig) {
+ return mailDomainConfig.getConfig().getOrDefault(domainListConfigName, DEFAULT_DOMAIN_LIST).split(DOMAIN_LIST_SEPARATOR);
+ }
+
@Override
public boolean isEmailValid(String email, String[] domains) {
for (String domain : domains) {