This is an automated email from the ASF dual-hosted git repository.

kirs pushed a commit to branch 2.0.4-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/2.0.4-prepare by this push:
     new 555288d  [Improve]Use hibernate validation framework Improve email 
verification method Support domain name verification Email is at least a 
second-level domain name
     new 05f3fc6  Merge remote-tracking branch 'upstream/2.0.4-prepare' into 
2.0.4-prepare
555288d is described below

commit 555288dbc6473c1ccb283b3dfbf1267cee380127
Author: Kirs <[email protected]>
AuthorDate: Mon Feb 21 16:54:46 2022 +0800

    [Improve]Use hibernate validation framework
    Improve email verification method
    Support domain name verification
    Email is at least a second-level domain name
---
 dolphinscheduler-api/pom.xml                                |  5 ++++-
 .../org/apache/dolphinscheduler/api/utils/CheckUtils.java   | 13 ++++++++++---
 .../java/org/apache/dolphinscheduler/common/Constants.java  |  7 +------
 dolphinscheduler-dist/release-docs/LICENSE                  |  3 +++
 pom.xml                                                     |  9 ++++++++-
 tools/dependencies/known-dependencies.txt                   |  3 +++
 6 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/dolphinscheduler-api/pom.xml b/dolphinscheduler-api/pom.xml
index 411f19b..0a63c4e 100644
--- a/dolphinscheduler-api/pom.xml
+++ b/dolphinscheduler-api/pom.xml
@@ -227,7 +227,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.powermock</groupId>
             <artifactId>powermock-module-junit4</artifactId>
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 0341e0b..3891087 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 72b5325..2bd6844 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 5be5dde..9fd8e16 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 3631fbe..ec81dc5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,6 +129,7 @@
         <jacoco.skip>false</jacoco.skip>
         <netty.version>4.1.53.Final</netty.version>
         <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
+        <hibernate.validator.version>6.2.2.Final</hibernate.validator.version>
     </properties>
 
     <dependencyManagement>
@@ -819,8 +820,14 @@
                 <artifactId>activation</artifactId>
                 <version>1.1</version>
             </dependency>
+     <!-- 
https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator 
-->
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>${hibernate.validator.version}</version>
+        </dependency>
 
-            <dependency>
+        <dependency>
                 <groupId>com.sun.mail</groupId>
                 <artifactId>javax.mail</artifactId>
                 <version>1.6.2</version>
diff --git a/tools/dependencies/known-dependencies.txt 
b/tools/dependencies/known-dependencies.txt
index 1c0214f..73add95 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

Reply via email to