summaryrefslogtreecommitdiffstats
path: root/server/src
diff options
context:
space:
mode:
authorTatu Lund <tatu@vaadin.com>2020-09-30 16:29:29 +0300
committerGitHub <noreply@github.com>2020-09-30 16:29:29 +0300
commit17f5c1b6693892e00a4c2379d621043ef077f24e (patch)
treeda25e6f3264afb12013a1194b13c21d44528319c /server/src
parent58bcc95f15a0c7bf032daabd885ba76984a789ee (diff)
downloadvaadin-framework-17f5c1b6693892e00a4c2379d621043ef077f24e.tar.gz
vaadin-framework-17f5c1b6693892e00a4c2379d621043ef077f24e.zip
Update regexp pattern to safer one (#12104)
Fixes: https://github.com/vaadin/framework/issues/7757
Diffstat (limited to 'server/src')
-rw-r--r--server/src/main/java/com/vaadin/data/validator/EmailValidator.java9
-rw-r--r--server/src/test/java/com/vaadin/tests/data/validator/EmailValidatorTest.java6
2 files changed, 13 insertions, 2 deletions
diff --git a/server/src/main/java/com/vaadin/data/validator/EmailValidator.java b/server/src/main/java/com/vaadin/data/validator/EmailValidator.java
index 63cd0211a2..4d1a5406be 100644
--- a/server/src/main/java/com/vaadin/data/validator/EmailValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/EmailValidator.java
@@ -34,6 +34,12 @@ package com.vaadin.data.validator;
@SuppressWarnings("serial")
public class EmailValidator extends RegexpValidator {
+ private static final String PATTERN = "^" + "([a-zA-Z0-9_\\.\\-+])+" // local
+ + "@" + "[a-zA-Z0-9-.]+" // domain
+ + "\\." + "[a-zA-Z0-9-]{2,}" // tld
+ + "$";
+
+
/**
* Creates a validator for checking that a string is a syntactically valid
* e-mail address.
@@ -42,7 +48,6 @@ public class EmailValidator extends RegexpValidator {
* the message to display in case the value does not validate.
*/
public EmailValidator(String errorMessage) {
- super("^([a-zA-Z0-9_\\.\\-+])+@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$",
- true, errorMessage);
+ super(PATTERN, true, errorMessage);
}
}
diff --git a/server/src/test/java/com/vaadin/tests/data/validator/EmailValidatorTest.java b/server/src/test/java/com/vaadin/tests/data/validator/EmailValidatorTest.java
index 97d304d7df..d9004f59b0 100644
--- a/server/src/test/java/com/vaadin/tests/data/validator/EmailValidatorTest.java
+++ b/server/src/test/java/com/vaadin/tests/data/validator/EmailValidatorTest.java
@@ -28,4 +28,10 @@ public class EmailValidatorTest {
public void testEmailValidatorWithOkEmail() {
Assert.assertTrue(validator.isValid("my.name@email.com"));
}
+
+ @Test
+ public void testEmailValidatorWithBadInput() {
+ Assert.assertFalse(validator.isValid("a@a.m5qRt8zLxQG4mMeu9yKZm5qRt8zLxQG4mMeu9yKZm5qRt8zLxQG4mMeu9yKZ&"));
+ }
+
}