turner 2003/01/19 22:50:27
Modified: validator/src/share/org/apache/commons/validator
GenericValidator.java
validator/src/test/org/apache/commons/validator
EmailTest.java
Log:
Fixes bug 16198 , non-ascii characters are now blocked in e-Mail addresses
Revision Changes Path
1.10 +10 -4
jakarta-commons/validator/src/share/org/apache/commons/validator/GenericValidator.java
Index: GenericValidator.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/validator/src/share/org/apache/commons/validator/GenericValidator.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- GenericValidator.java 20 Jan 2003 06:28:37 -0000 1.9
+++ GenericValidator.java 20 Jan 2003 06:50:26 -0000 1.10
@@ -406,6 +406,7 @@
String word = "(" + atom + "|" + quotedUser + ")";
// Each pattern must be surrounded by /
+ String legalAsciiPat = getDelimittedRegexp("^[\\000-\\177]+$");
String emailPat = getDelimittedRegexp("^(.+)@(.+)$");
String ipDomainPat =
getDelimittedRegexp("^(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})$");
String userPat = getDelimittedRegexp("^" + word + "(\\." + word + ")*$");
@@ -417,10 +418,15 @@
Perl5Util matchIPPat = new Perl5Util();
Perl5Util matchDomainPat = new Perl5Util();
Perl5Util matchAtomPat = new Perl5Util();
+ Perl5Util matchAsciiPat = new Perl5Util();
boolean ipAddress = false;
boolean symbolic = false;
+ if (!matchAsciiPat.match(legalAsciiPat, value)) {
+ return false;
+ }
+
// Check the whole email address structure
bValid = matchEmailPat.match(emailPat, value);
1.6 +17 -4
jakarta-commons/validator/src/test/org/apache/commons/validator/EmailTest.java
Index: EmailTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/validator/src/test/org/apache/commons/validator/EmailTest.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- EmailTest.java 20 Jan 2003 06:28:37 -0000 1.5
+++ EmailTest.java 20 Jan 2003 06:50:26 -0000 1.6
@@ -213,6 +213,19 @@
}
/**
+ * <p>Tests the e-mail validation with an RCS-noncompliant character in
+ * the address.</p>
+ */
+ public void testEmailWithBogusCharacter() throws ValidatorException {
+ // Create bean to run test on.
+ ValueBean info = new ValueBean();
+
+ info.setValue("andy.noble@\u008fdata-workshop.com");
+ valueTest(info, false);
+
+ }
+
+ /**
* Utlity class to run a test on a value.
*
* @param info Value to run test on.
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>