[
https://issues.apache.org/jira/browse/MSHARED-609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15822917#comment-15822917
]
Michael Osipov edited comment on MSHARED-609 at 1/14/17 7:16 PM:
-----------------------------------------------------------------
bq. Do you know if there is a good reason for this kind of "static" TLD
validation in {{DomainValidator}}?
I think yes, because any type of TLD is validated with an
{{isValid...Tld(String)}} method.
bq. Your suggested solution would change the behavior of {{isValid(String)}}
and need a new flag to allow link-local (in addition to the
{{UrlValidator.ALLOW_MDNS_HOSTNAME}} flag). What would you prefer?
This should not be a default option, but a boolean flag to the
{{#getInstance()}} method with {{boolean allowLinkLocal}}. {{#isValid()}} would
work accordingly with the internal flag. Since {{UrlValidator}} uses
{{DomainValidator}}, it think it should require {{ALLOW_LINK_LOCAL_URLS}}
becaues mDNS is the technology behind and not the hostname style.
Apple provides [good
documentation|https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/NetServices/Articles/domainnames.html#//apple_ref/doc/uid/TP40002460-CJBDIAHA]
about it as well as the [RFC 6762, Section
3|https://tools.ietf.org/html/rfc6762#section-3].
bq. Concerning Maven - I personally think that URL validation for project URLs
is not necessary at all. If it is, it should be validated upon build time with
a meaningful warning for the producer not the consumer.
I fully agree here. I am inclined to remove it altogether because people could
use SFTP, SSH, S3, FTPS, SMB and all of them are valid, but considered invalid
by us -- which is wrong. There is no bulletproof way for us to tell wether a
URL is correct or not. We could pass it at most to {{URI}} and see the result.
I will create a new ticket for removing the validation as a whole.
was (Author: michael-o):
> Do you know if there is a good reason for this kind of "static" TLD
> validation in DomainValidator?
I think yes, because any type of TLD is validated with an
{{isValid...Tld(String)}} method.
> Your suggested solution would change the behavior of isValid(String) or need
> a new flag to allow link-local (in addition to the
> UrlValidator.ALLOW_MDNS_HOSTNAME flag). What would you prefer?
This should not be a default option, but a boolean flag to the
{{#getInstance()}} method with {{boolean allowLinkLocal}}. {{#isValid()}} would
work accordingly with the internal flag. Since {{UrlValidator}} uses
{{DomainValidator}}, it think it should require {{ALLOW_LINK_LOKAL_URLS}}
becaues mDNS is the technology behind and not the hostname style.
Apple provides [good
documentation|https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/NetServices/Articles/domainnames.html#//apple_ref/doc/uid/TP40002460-CJBDIAHA]
about it as well as the [RFC 6762, Section
3|https://tools.ietf.org/html/rfc6762#section-3].
> Concerning Maven - I personally think that URL validation for project URLs is
> not necessary at all. If it is, it should be validated upon build time with a
> meaningful warning for the producer not the consumer.
I fully agree here. I am included to remove it altogether because people could
use SFTP, SSH, S3, FTPS, SMB and all of the are valid, but considered invalid
by us -- which is wrong. There is no way for us to tell wether a URL is correct
or not. We could pass it at most to {{URI}} and see the result. I will create a
new ticket for moving the validation as a whole.
> Partially revert MSHARED-429
> ----------------------------
>
> Key: MSHARED-609
> URL: https://issues.apache.org/jira/browse/MSHARED-609
> Project: Maven Shared Components
> Issue Type: Task
> Components: maven-reporting-impl
> Affects Versions: maven-reporting-impl 2.4
> Reporter: Michael Osipov
> Assignee: Michael Osipov
> Fix For: maven-reporting-impl 3.0
>
>
> MSHARED-429 introduced handling of hostnames endling with {{.local}} though
> they are invalid in the way they are used.
> Copied from the ticket:
> I'd seriously like to revert this partially for 3.0:
> * Your DNS setup is simply broken. {{.local}} is a reserved TLD for mDNS
> resolution. This is not meant to be used in private networks. Doing so breaks
> Avahi on Linux/FreeBSD, Bonjour on macOS and everything else using zeroconf.
> You should register a domain name and use subdomains on your private network
> (https://de.wikipedia.org/wiki/Zeroconf#Multicast_DNS).
> * It does not accept full 16-bit unsigned integer
> * You always have to update with the newest pattern in Commons Validator
> Local hostnames (unqualified) can be validated by passing an option/flag to
> the validator. The rest of the patch, missing TLDs, etc. are already in
> Commons Validator 1.5.1.
> We should not encourage bad setups.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)