diff --git a/dolphinscheduler-api/pom.xml b/dolphinscheduler-api/pom.xml
index 411f19bcb0..0a63c4e1e9 100644
--- a/dolphinscheduler-api/pom.xml
+++ b/dolphinscheduler-api/pom.xml
@@ -227,7 +227,10 @@
-
+
+ org.hibernate.validator
+ hibernate-validator
+
org.powermock
powermock-module-junit4
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
index 0341e0b95d..3891087440 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
@@ -26,6 +26,7 @@ import org.apache.dolphinscheduler.common.utils.TaskParametersUtils;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
import org.apache.commons.lang.StringUtils;
+import org.hibernate.validator.internal.constraintvalidators.bv.EmailValidator;
import java.text.MessageFormat;
import java.util.HashMap;
@@ -59,11 +60,17 @@ public class CheckUtils {
* @return true if email regex valid, otherwise return false
*/
public static boolean checkEmail(String email) {
- if (StringUtils.isEmpty(email)) {
+ if (StringUtils.isBlank(email)) {
return false;
}
-
- return email.length() > 5 && email.length() <= 40 && regexChecks(email, Constants.REGEX_MAIL_NAME);
+ EmailValidator emailValidator = new EmailValidator();
+ if (!emailValidator.isValid(email, null)) {
+ return false;
+ }
+ //Email is at least a second-level domain name
+ int indexDomain = email.lastIndexOf("@");
+ String domainString = email.substring(indexDomain);
+ return domainString.contains(".");
}
/**
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
index 72b5325b72..2bd6844727 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
@@ -308,12 +308,7 @@ public final class Constants {
* user name regex
*/
public static final Pattern REGEX_USER_NAME = Pattern.compile("^[a-zA-Z0-9._-]{3,39}$");
-
- /**
- * email regex
- */
- public static final Pattern REGEX_MAIL_NAME = Pattern.compile("^([a-z0-9A-Z]+[_|\\-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$");
-
+
/**
* default display rows
*/
diff --git a/dolphinscheduler-dist/release-docs/LICENSE b/dolphinscheduler-dist/release-docs/LICENSE
index 5be5dde8d1..9fd8e161ca 100644
--- a/dolphinscheduler-dist/release-docs/LICENSE
+++ b/dolphinscheduler-dist/release-docs/LICENSE
@@ -405,6 +405,9 @@ The text of each license is also included at licenses/LICENSE-[project].txt.
protostuff-collectionschema 1.7.2: https://github.com/protostuff/protostuff/protostuff-collectionschema Apache-2.0
prometheus client_java(simpleclient) 0.12.0: https://github.com/prometheus/client_java, Apache 2.0
snowflake snowflake-2010: https://github.com/twitter-archive/snowflake/tree/snowflake-2010, Apache 2.0
+ hibernate-validator 6.2.2.Final https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator/6.2.2.Final, Apache 2.0
+ jakarta.validation-api 2.0.2 https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api/2.0.2, Apache 2.0
+ jboss-logging:jar 3.4.2.Final https://mvnrepository.com/artifact/org.jboss.logging/jboss-logging/3.4.2.Final, Apache 2.0
========================================================================
BSD licenses
diff --git a/pom.xml b/pom.xml
index 3631fbedb8..ec81dc5ba0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,6 +129,7 @@
false
4.1.53.Final
3.2.0
+ 6.2.2.Final
@@ -819,8 +820,14 @@
activation
1.1
+
+
+ org.hibernate.validator
+ hibernate-validator
+ ${hibernate.validator.version}
+
-
+
com.sun.mail
javax.mail
1.6.2
diff --git a/tools/dependencies/known-dependencies.txt b/tools/dependencies/known-dependencies.txt
index 1c0214fa62..73add958c5 100755
--- a/tools/dependencies/known-dependencies.txt
+++ b/tools/dependencies/known-dependencies.txt
@@ -71,6 +71,7 @@ hadoop-yarn-api-2.7.3.jar
hadoop-yarn-client-2.7.3.jar
hadoop-yarn-common-2.7.3.jar
hadoop-yarn-server-common-2.7.3.jar
+hibernate-validator-6.2.2.Final.jar
hive-common-2.1.0.jar
hive-jdbc-2.1.0.jar
hive-metastore-2.1.0.jar
@@ -96,6 +97,7 @@ jackson-module-parameter-names-2.12.5.jar
jackson-xc-1.9.13.jar
jakarta.annotation-api-1.3.5.jar
jakarta.servlet-api-4.0.4.jar
+jakarta.validation-api-2.0.2.jar
jakarta.websocket-api-1.1.2.jar
jamon-runtime-2.3.1.jar
java-xmlbuilder-0.4.jar
@@ -108,6 +110,7 @@ javax.mail-1.6.2.jar
javolution-5.5.1.jar
jaxb-api-2.3.1.jar
jaxb-impl-2.2.3-1.jar
+jboss-logging-3.4.2.Final.jar
jdo-api-3.0.1.jar
jersey-client-1.9.jar
jersey-core-1.9.jar