[
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)