From de1cc156c960506cee6335b5db59419afe3f1e4b Mon Sep 17 00:00:00 2001 From: Ron Panduwana Date: Mon, 10 Aug 2015 00:51:55 +0700 Subject: [PATCH] OC-2795 When using email action to xxxx.xxxx@xxxx-xxxx.com , Rule designer produces an error bugfix, email validator Add new dependency commons-validator-1.4.1, and use their EmailValidator Add repository maven-central from http://repo1.maven.org/maven2/, there was problem with packages downloaded by maven failing checksum Add dependency jackson-core-asl, there was problem with rendering json http response Add dependency apache.tiles, apache.httpcore, and ow2.asm, there was missing definition when building the package --- pom.xml | 46 ++++++++++++++++++- .../web/controller/RulesCommandValidator.java | 9 ++-- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 40c9f1b..90f3c21 100644 --- a/pom.xml +++ b/pom.xml @@ -55,6 +55,10 @@ false + + maven-central + http://repo1.maven.org/maven2 + Akaza Dev Repository http://svn.akazaresearch.com/ocrepository/repository @@ -330,6 +334,21 @@ tiles-jsp 2.2.1 + + org.apache.tiles + tiles-api + 2.2.1 + + + org.apache.tiles + tiles-servlet + 2.2.1 + + + org.apache.tiles + tiles-template + 2.2.1 + org.springframework spring-web @@ -493,6 +512,11 @@ compile + + org.codehaus.jackson + jackson-core-asl + 1.5.3 + org.codehaus.jackson jackson-mapper-asl @@ -515,21 +539,41 @@ commons-httpclient 3.1 + + commons-validator + commons-validator + 1.4.1 + org.springframework.security.oauth spring-security-oauth 1.0.0.M2 - + org.apache.httpcomponents httpclient 4.1 + + org.apache.httpcomponents + httpcore + 4.1 + + + org.ow2.asm + asm + 3.2 + org.codehaus.groovy groovy 1.8.0 + + commons-beanutils + commons-beanutils-core + 1.8.3 + diff --git a/src/main/java/org/akaza/openclinica/designer/web/controller/RulesCommandValidator.java b/src/main/java/org/akaza/openclinica/designer/web/controller/RulesCommandValidator.java index dd981af..562e3d1 100644 --- a/src/main/java/org/akaza/openclinica/designer/web/controller/RulesCommandValidator.java +++ b/src/main/java/org/akaza/openclinica/designer/web/controller/RulesCommandValidator.java @@ -1,5 +1,6 @@ package org.akaza.openclinica.designer.web.controller; +import org.apache.commons.validator.routines.EmailValidator; import org.openclinica.ns.rules.v31.DiscrepancyNoteActionType; import org.openclinica.ns.rules.v31.EmailActionType; import org.openclinica.ns.rules.v31.HideActionType; @@ -82,17 +83,15 @@ private void validateEmailAction(LazyRuleRefType2 action, Errors e) { if (emailAction.getTo() == null || emailAction.getTo().trim().length() == 0) { e.rejectValue("ruleRef.lazyEmailActions[" + action.getEmailAction().indexOf(emailAction) + "].to", "email.to.empty"); } else { - Pattern pattern = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); + EmailValidator validator = EmailValidator.getInstance(); StringTokenizer tokenizer = new StringTokenizer(emailAction.getTo(), ","); if (tokenizer.countTokens() == 0) { - Matcher matcher = pattern.matcher(emailAction.getTo()); - if (!matcher.matches()) { + if (!validator.isValid(emailAction.getTo())) { e.rejectValue("ruleRef.lazyEmailActions[" + action.getEmailAction().indexOf(emailAction) + "].to", "email.to.not.valid"); } } else { while (tokenizer.hasMoreTokens()) { - Matcher matcher = pattern.matcher(tokenizer.nextToken().trim()); - if (!matcher.matches()) { + if (!validator.isValid(tokenizer.nextToken().trim())) { e.rejectValue("ruleRef.lazyEmailActions[" + action.getEmailAction().indexOf(emailAction) + "].to", "email.to.not.valid"); break; }