This is an automated email from the git hooks/post-receive script. New commit to branch develop-1.1.x in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 37a56e4cb8282c5cc2aa7cbaebeaf08d6e46cbc2 Author: jcouteau <couteau@codelutin.com> Date: Mon Nov 22 12:32:56 2021 +0100 Fix email validation with long TLD (for example *.consulting) (cherry picked from commit a896574166442fbe48bccab26eea34c75a087e34) --- .../validators/FaxToMailEmailsValidator.java | 54 ++++++++++++++++------ .../src/main/resources/validators.xml | 2 +- pom.xml | 13 ++++-- 3 files changed, 49 insertions(+), 20 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java index 322a6b35..8f3c1f64 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java @@ -1,12 +1,12 @@ package com.franciaflex.faxtomail.services.validators; -/* +/*- * #%L * FaxToMail :: Service - * $Id$ - * $HeadURL$ + * $Id:$ + * $HeadURL:$ * %% - * Copyright (C) 2014 Mac-Groupe, Code Lutin + * Copyright (C) 2014 - 2017 Mac-Groupe, Code Lutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -24,22 +24,46 @@ package com.franciaflex.faxtomail.services.validators; * #L% */ -import com.opensymphony.xwork2.validator.validators.EmailValidator; +import com.opensymphony.xwork2.validator.ValidationException; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.util.StringUtil; +import org.nuiton.validator.xwork2.field.NuitonFieldValidatorSupport; /** - * Surcharge du validateur d'email par default de struts - * pour autoriser plusieurs emails séparés par des points-virgule + * Validateur pour autoriser plusieurs emails séparés par des points-virgule */ -public class FaxToMailEmailsValidator extends EmailValidator { +public class FaxToMailEmailsValidator extends NuitonFieldValidatorSupport { - // see XW-371 - public static final String EMAIL_ADDRESSES_PATTERN = - "\\b^['_a-z0-9-\\+]+(\\.['_a-z0-9-\\+]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,6})" + - "(\\s*;\\s*['_a-z0-9-\\+]+(\\.['_a-z0-9-\\+]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,6}))*" + - "$\\b"; - public FaxToMailEmailsValidator() { - setRegex(EMAIL_ADDRESSES_PATTERN); + @Override + public void validateWhenNotSkip(Object object) throws ValidationException { + + String fieldName = getFieldName(); + Object allValues = getFieldValue(fieldName, object); + + if (allValues == null) { + // no value defined + return; + } + if (allValues instanceof String) { + + String[] values = StringUtils.split((String)allValues,';'); + for (String value:values) { + if (StringUtils.isEmpty(value)) { + // no value defined + return; + } + if (!StringUtil.isEmail(value)) { + addFieldError(fieldName, object); + } + } + } else { + addFieldError(fieldName, object); + } } + @Override + public String getValidatorType() { + return "emails"; + } } diff --git a/faxtomail-service/src/main/resources/validators.xml b/faxtomail-service/src/main/resources/validators.xml index 56e1156c..d9f9970b 100644 --- a/faxtomail-service/src/main/resources/validators.xml +++ b/faxtomail-service/src/main/resources/validators.xml @@ -47,6 +47,6 @@ <validator name="existingFile" class="org.nuiton.validator.xwork2.field.ExistingFileFieldValidator"/> <!-- les validateur specifiques --> - <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/> + <validator name="email" class="org.nuiton.validator.xwork2.field.EmailFieldValidator"/> <validator name="emails" class="com.franciaflex.faxtomail.services.validators.FaxToMailEmailsValidator"/> </validators> diff --git a/pom.xml b/pom.xml index 5d9b78d7..39d1768d 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ <snapshotRepository> <id>nuiton-nexus-deploy</id> <url> - http://nexus.nuiton.org/nexus/content/repositories/faxtomail-snapshot + https://nexus.nuiton.org/nexus/content/repositories/faxtomail-snapshot </url> </snapshotRepository> </distributionManagement> @@ -104,7 +104,7 @@ <nuitonDecoratorVersion>3.0-alpha-3</nuitonDecoratorVersion> <nuitonUpdaterVersion>3.0-rc-1</nuitonUpdaterVersion> <nuitonUtilsVersion>3.0-rc-8</nuitonUtilsVersion> - <nuitonValidatorVersion>3.0-rc-2</nuitonValidatorVersion> + <nuitonValidatorVersion>3.3</nuitonValidatorVersion> <nuitonWebVersion>1.17</nuitonWebVersion> <eugeneVersion>2.13</eugeneVersion> @@ -493,6 +493,11 @@ <groupId>javassist</groupId> <artifactId>javassist</artifactId> </exclusion> + + <exclusion> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + </exclusion> </exclusions> </dependency> @@ -639,7 +644,7 @@ <version>1.2.25-1</version> <scope>runtime</scope> </dependency> - + <dependency> <groupId>org.nuiton.js</groupId> <artifactId>nuiton-js-font-awesome</artifactId> @@ -802,7 +807,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.9</version> + <version>0.8.4</version> <executions> <execution> <id>default-prepare-agent</id> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.