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

Jan Schultze edited comment on MSHARED-609 at 1/8/17 7:47 AM:
--------------------------------------------------------------

Agreed. The port range should be extended.

And yes, my patch did fix the wrong end. However, that was a conscious decision 
based on the following reasoning. I wanted to change as little as possible in 
order to avoid creating problems for other people. I did and do not know who 
consumes {{UrlValidator}}. Given the recent explosion of TLDs it seemed (and 
that is only my personal impression) odd to validate TLDs, especially with a 
hard coded set of more than 1000 names. Also, the deprecated "non-routines" 
{{UrlValidator}} originally used in Maven tried to "validate" TLDs by 
restricting them to a maximum of 4 characters. That's what actually prevented 
{{.local}} from being used in Maven sites. Concerning domain validation in 
general I felt that depending on the use case a DNS lookup validating the fully 
qualified name or a purely syntactical analysis should be employed. So I 
decided that I do not understand the component and cannot fix it because I do 
not know if it is really broken or working as intended. However, given its 
behavior it was used in the wrong way in Maven. So I decided to fix the wrong 
end.

Do you know if there is a good reason for this kind of "static" TLD validation 
in {{DomainValidator}}?

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?

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.


was (Author: jan.schultze):
Agreed. The port range should be extended.

And yes, my patch did fix the wrong end. However, that was a conscious decision 
based on the following reasoning. I wanted to change as little as possible in 
order to avoid creating problems for other people. I did and do not know who 
consumes {{UrlValidator}}. Given the recent explosion of TLDs it seemed (and 
that is only my personal impression) odd to validate TLDs, especially with a 
hard coded set of more than 1000 names. Also, the deprecated "non-routines" 
{{UrlValidator}} originally used in Maven tried to "validate" TLDs by 
restricting them to a maximum of 4 characters. That's what actually prevented 
{{.local}} from being used in Maven sites. Concerning domain validation in 
general I felt that depending on the use case a DNS lookup validating the fully 
qualified name or a purely syntactical analysis should be employed. So I 
decided that I do not understand the component and cannot fix it because I do 
not know if it is really broken or working as intended. However, given its 
behavior it was used in the wrong way in Maven. So I decided to fix the wrong 
end.

Do you know if there is a good reason for this kind of "static" TLD validation 
in {{DomainValidator}}?

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

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.

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

Reply via email to