Index: lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java,v diff -u -r1.16 -r1.17 --- lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java 6 Nov 2009 06:50:14 -0000 1.16 +++ lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java 6 Apr 2014 16:27:06 -0000 1.17 @@ -96,14 +96,27 @@ // (dyna)form validation if ((userForm.get("firstName") == null) || (userForm.getString("firstName").trim().length() == 0)) { errors.add("firstName", new ActionMessage("error.firstname.required")); + } else { + Pattern p = Pattern.compile("^[\\p{L}]++(?:[' -][\\p{L}]++)*+\\.?$"); + Matcher m = p.matcher(userForm.getString("firstName")); + if (!m.matches()) { + errors.add("firstName", new ActionMessage("error.firstname.invalid.characters")); + } } if ((userForm.get("lastName") == null) || (userForm.getString("lastName").trim().length() == 0)) { errors.add("lastName", new ActionMessage("error.lastname.required")); + } else { + Pattern p = Pattern.compile("^[\\p{L}]++(?:[' -][\\p{L}]++)*+\\.?$"); + Matcher m = p.matcher(userForm.getString("lastName")); + if (!m.matches()) { + errors.add("lastName", new ActionMessage("error.lastname.invalid.characters")); + } } if ((userForm.get("email") == null) || (userForm.getString("email").trim().length() == 0)) { errors.add("email", new ActionMessage("error.email.required")); } else { - Pattern p = Pattern.compile(".+@.+\\.[a-z]+"); + Pattern p = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); Matcher m = p.matcher(userForm.getString("email")); if (!m.matches()) { errors.add("email", new ActionMessage("error.valid.email.required")); @@ -162,4 +175,4 @@ return service; } -} \ No newline at end of file +}