Java 正确的FQDN Uri由apache commons UrlValidator无效

Java 正确的FQDN Uri由apache commons UrlValidator无效,java,regex,apache,Java,Regex,Apache,首先,我使用的是ApacheCommons提供的当前版本的UrlValidator库。我正在尝试验证FQDN URL,如tcp://cor.rect.url:61616,但不幸的是,验证程序使此URL无效。我正在使用以下参数创建验证器: new UrlValidator(UrlValidator.ALLOW_ALL_SCHEMES + UrlValidator.ALLOW_LOCAL_URLS) 以前有人遇到过类似的问题吗?有什么解决方法吗?根据1的源代码,它调用了 1完全限定的类名是org.

首先,我使用的是ApacheCommons提供的当前版本的
UrlValidator
库。我正在尝试验证FQDN URL,如
tcp://cor.rect.url:61616
,但不幸的是,验证程序使此URL无效。我正在使用以下参数创建验证器:

new UrlValidator(UrlValidator.ALLOW_ALL_SCHEMES + UrlValidator.ALLOW_LOCAL_URLS)

以前有人遇到过类似的问题吗?有什么解决方法吗?

根据1的源代码,它调用了

1完全限定的类名是
org.apache.commons.validator.routines.urlvidator
,不要与不推荐的实现
org.apache.commons.validator.urlvidator混为一谈

DomainValidator
调用以检查TLD。通过启用
ALLOW_LOCAL\u url
选项,它首先根据
isValidLocalTld
中的本地TLD列表检查域名,然后根据
isValidInfrastructureTld
isValidGenericTld
isvalidCountryCoded>检查域。但是,
url
不出现在任何列表中

在允许本地URL的情况下,
DomainValidator
对本地URL进行最终检查(例如,
localhost
),但您的URL也不属于这种情况

因此,您的URL被
UrlValidator
拒绝


至于解决方案,您似乎可以定义自己的解决方案并将其传递给构造函数。最好使用的源代码作为参考,从授权部分解析域,并提供自己的逻辑来验证域。

根据1的源代码,它调用

1完全限定的类名是
org.apache.commons.validator.routines.urlvidator
,不要与不推荐的实现
org.apache.commons.validator.urlvidator混为一谈

DomainValidator
调用以检查TLD。通过启用
ALLOW_LOCAL\u url
选项,它首先根据
isValidLocalTld
中的本地TLD列表检查域名,然后根据
isValidInfrastructureTld
isValidGenericTld
isvalidCountryCoded>检查域。但是,
url
不出现在任何列表中

在允许本地URL的情况下,
DomainValidator
对本地URL进行最终检查(例如,
localhost
),但您的URL也不属于这种情况

因此,您的URL被
UrlValidator
拒绝


至于解决方案,您似乎可以定义自己的解决方案并将其传递给构造函数。最好使用的源代码作为参考,从授权部分解析域,并提供自己的逻辑来验证域。

UrlValidator
,它调用以检查URL是否具有有效的TLD(
isValidInfrastructureTld
isValidGenericTld
,以及
isValidCountryCodeTld
),使用“允许本地URL”,它将检查
isValidLocalTld
,但
URL
不在TLD列表中,因此您的URL被拒绝。这是正确的,谢谢
urlvalidater
,它调用该URL检查是否具有有效的TLD(
isValidInfrastructureTld
isValidGenericTld
,和
isValidCountryCodeTld
),使用允许本地URL,它检查
isValidLocalTld
,但
URL
不在TLD列表中,因此您的URL被拒绝。这是正确的,谢谢