From 7a555fca8d78388c0a66890935007dc3fb008e9a Mon Sep 17 00:00:00 2001
From: Yevhen Bondarenko <56396344+YevhenBondarenko@users.noreply.github.com>
Date: Mon, 15 Jun 2020 12:37:43 +0300
Subject: [PATCH] removed Apache Email Validator (#2945)
* removed Apache Email Validator
* improvements Email Validator regex
* refactored Email Validator
---
dao/pom.xml | 82 +++++++++----------
.../server/dao/service/DataValidator.java | 18 +++-
pom.xml | 6 --
3 files changed, 55 insertions(+), 51 deletions(-)
diff --git a/dao/pom.xml b/dao/pom.xml
index 90417b8a53..86139125cb 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -91,26 +91,26 @@
mockito-all
test
-
- org.apache.commons
- commons-lang3
-
-
- commons-validator
- commons-validator
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
+
+ org.apache.commons
+ commons-lang3
+
+
+ commons-collections
+ commons-collections
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
org.springframework
spring-context
-
- org.springframework
- spring-tx
-
+
+ org.springframework
+ spring-tx
+
org.springframework
spring-web
@@ -120,24 +120,24 @@
org.springframework.security
spring-security-oauth2-client
-
- com.datastax.cassandra
- cassandra-driver-core
-
-
- com.datastax.cassandra
- cassandra-driver-mapping
-
-
- com.datastax.cassandra
- cassandra-driver-extras
-
+
+ com.datastax.cassandra
+ cassandra-driver-core
+
+
+ com.datastax.cassandra
+ cassandra-driver-mapping
+
+
+ com.datastax.cassandra
+ cassandra-driver-extras
+
io.takari.junit
takari-cpsuite
test
-
-
+
+
com.google.guava
guava
@@ -215,18 +215,18 @@
-
- org.apache.maven.plugins
- maven-jar-plugin
+
+ org.apache.maven.plugins
+ maven-jar-plugin
${jar-plugin.version}
-
-
-
- test-jar
-
-
-
-
+
+
+
+ test-jar
+
+
+
+
diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java
index 05969874ed..7f04ddf2aa 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java
@@ -17,7 +17,6 @@ package org.thingsboard.server.dao.service;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.validator.routines.EmailValidator;
import org.thingsboard.server.common.data.BaseData;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.exception.DataValidationException;
@@ -26,11 +25,13 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Function;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
@Slf4j
public abstract class DataValidator> {
-
- private static EmailValidator emailValidator = EmailValidator.getInstance();
+ private static final Pattern EMAIL_PATTERN =
+ Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
public void validate(D data, Function tenantIdFunction) {
try {
@@ -64,11 +65,20 @@ public abstract class DataValidator> {
}
protected static void validateEmail(String email) {
- if (!emailValidator.isValid(email)) {
+ if (!doValidateEmail(email)) {
throw new DataValidationException("Invalid email address format '" + email + "'!");
}
}
+ private static boolean doValidateEmail(String email) {
+ if (email == null) {
+ return false;
+ }
+
+ Matcher emailMatcher = EMAIL_PATTERN.matcher(email);
+ return emailMatcher.matches();
+ }
+
protected static void validateJsonStructure(JsonNode expectedNode, JsonNode actualNode) {
Set expectedFields = new HashSet<>();
Iterator fieldsIterator = expectedNode.fieldNames();
diff --git a/pom.xml b/pom.xml
index 377c52fb66..4361423b0b 100755
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,6 @@
28.2-jre
2.6.1
3.4
- 1.6
2.5
1.4
2.10.2
@@ -1075,11 +1074,6 @@
commons-lang3
${commons-lang3.version}
-
- commons-validator
- commons-validator
- ${commons-validator.version}
-
commons-io
commons-io