From: <hib...@li...> - 2006-06-15 19:07:14
|
Author: epbernard Date: 2006-06-15 15:07:03 -0400 (Thu, 15 Jun 2006) New Revision: 10021 Added: trunk/HibernateExt/metadata/src/test/org/hibernate/lucene/ Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/validator/EmailValidator.java trunk/HibernateExt/metadata/src/test/org/hibernate/validator/test/EmailTest.java Log: ANN-375 fix email chacking compliant with RFC Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/validator/EmailValidator.java =================================================================== --- trunk/HibernateExt/metadata/src/java/org/hibernate/validator/EmailValidator.java 2006-06-15 16:38:03 UTC (rev 10020) +++ trunk/HibernateExt/metadata/src/java/org/hibernate/validator/EmailValidator.java 2006-06-15 19:07:03 UTC (rev 10021) @@ -10,6 +10,9 @@ * @author Emmanuel Bernard */ public class EmailValidator implements Validator<Email>, Serializable { + private static String ATOM = "[^\\x00-\\x1F^\\(^\\)^\\<^\\>^\\@^\\,^\\(;^\\:^\\\\^\\\"^\\.^\\[^\\]^\\s]"; + private static String DOMAIN = "(" + ATOM + "+(\\." + ATOM + "+)*"; + private static String IP_DOMAIN = "\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\]"; private java.util.regex.Pattern pattern; @@ -26,5 +29,13 @@ "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*$", java.util.regex.Pattern.CASE_INSENSITIVE ); + pattern = java.util.regex.Pattern.compile( + "^" + ATOM + "+(\\." + ATOM + "+)*@" + + DOMAIN + + "|" + + IP_DOMAIN + + ")$", + java.util.regex.Pattern.CASE_INSENSITIVE + ); } } Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/validator/test/EmailTest.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/validator/test/EmailTest.java 2006-06-15 16:38:03 UTC (rev 10020) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/validator/test/EmailTest.java 2006-06-15 19:07:03 UTC (rev 10021) @@ -17,7 +17,13 @@ isRightEmail( "emmanuel@hibernate" ); isRightEmail( "emma-n_uel@hibernate" ); isWrongEmail( "emma nu...@hi..." ); + isWrongEmail( "emma(nu...@hi..." ); isWrongEmail( "emmanuel@" ); + isRightEmail( "emm...@hi..." ); + isRightEmail( "emma=nu...@hi..." ); + isWrongEmail( "emma\nn...@hi..." ); + isWrongEmail( "emma@nu...@hi..." ); + isRightEmail( "emmanuel@[123.12.2.11]" ); } private void isRightEmail(String email) { |