[ 
https://issues.apache.org/jira/browse/VALIDATOR-410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16062648#comment-16062648
 ] 

Bruno P. Kinoshita commented on VALIDATOR-410:
----------------------------------------------

FWIW, here's a few different libraries and the results for the URL validation.

Python.

{code:python}
import validators # pip install validators
r = validators.url('ftp:///+')
print(r == True)
# False
from urllib.parse import urlparse
 = urlparse('ftp:///+')
print(r == True)
# False
{code}

JavaScript:

JQuery Validation Plug-in fails to validate ftp:///+, see 
https://jqueryvalidation.org/url-method/ to test it. You can find the regex 
used in the GH repository too.

Perl:

{code:perl}
#!/usr/bin/env perl

use Data::Validate::URI qw(is_uri);
my $r = is_uri("ftp:///+";);
if ($r) {
  print "Valid";
} else {
  print "Invalid";
}
# Valid
{code}

So at least it's not so different from other programming languages & libraries. 
There may be other Python and JS libraries that actually validate to true that 
URL, I just used the ones I'm aware of and normally use in projects.

> Failure cases for UrlValidator 
> -------------------------------
>
>                 Key: VALIDATOR-410
>                 URL: https://issues.apache.org/jira/browse/VALIDATOR-410
>             Project: Commons Validator
>          Issue Type: Bug
>    Affects Versions: 1.5.1
>            Reporter: Asankhaya Sharma
>            Priority: Minor
>
> I was trying to check how closely the UrlValidator implements the URL grammar 
> as described by the RFC 1738 (https://www.ietf.org/rfc/rfc1738.txt). I fuzzed 
> the UrlValidator with GramTest, a grammar based test case generation tool 
> (https://github.com/codelion/gramtest). 
> I found that in the latest version 1.5.1, the UrlValidator fails to validate 
> the following strings:
> {{"ftp:///+"}}
> {{"mailto:%FF@Z"}}
> These two strings may seem a bit strange, but I verified manually that they 
> are allowed by the grammar given in the RFC (see also 
> https://www.w3.org/Addressing/URL/5_BNF.html). 
> Furthermore, it is possible to create the following URLs in Java without 
> throwing a {{MalformedUrlException}}:
> {code}
> new URL("ftp:///+";);
> new URL("mailto:%FF@Z";);
> {code}
> however, the UrlValidator returns false for these strings:
> {code}
> UrlValidator validator = new UrlValidator(UrlValidator.ALLOW_ALL_SCHEMES + 
> UrlValidator.ALLOW_2_SLASHES + UrlValidator.ALLOW_LOCAL_URLS);
> validator.isValid("ftp:///+";); // returns false
> validator.isValid("mailto:%FF@Z";); // returns false
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to