Index: src/java/org/sakaiproject/site/tool/helper/participant/impl/SiteAddParticipantHandler.java =================================================================== --- src/java/org/sakaiproject/site/tool/helper/participant/impl/SiteAddParticipantHandler.java (revision 63355) +++ src/java/org/sakaiproject/site/tool/helper/participant/impl/SiteAddParticipantHandler.java (working copy) @@ -11,6 +11,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.commons.validator.EmailValidator; import org.sakaiproject.authz.api.AuthzGroup; import org.sakaiproject.authz.api.AuthzGroupService; import org.sakaiproject.authz.api.AuthzPermissionException; @@ -794,6 +795,11 @@ targettedMessageList.addMessage(new TargettedMessage("java.emailaddress", new Object[] { nonOfficialAccount }, TargettedMessage.SEVERITY_ERROR)); + } else if (!isValidMail(nonOfficialAccount)) { + // must be a valid email address + targettedMessageList.addMessage(new TargettedMessage("java.emailaddress", + new Object[] { nonOfficialAccount }, + TargettedMessage.SEVERITY_ERROR)); } else { Participant participant = new Participant(); try { @@ -918,8 +924,24 @@ } } return true; + + } + private boolean isValidMail(String email) { + + + if (email == null || email.equals("")) + return false; + + + email = email.trim(); + + EmailValidator ev = EmailValidator.getInstance(); + return ev.isValid(email); + + } + private Vector removeDuplicateParticipants(List pList) { // check the uniqueness of list member Set s = new HashSet(); Index: pom.xml =================================================================== --- pom.xml (revision 63355) +++ pom.xml (working copy) @@ -95,6 +95,16 @@ commons-logging 1.0.4 + + commons-validator + commons-validator + 1.3.1 + + + oro + oro + 2.0.8 + src/java