This repository was archived by the owner on Jan 31, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 134
Running URI through UriNormalize Filter appends / - causes Hostname TLD check to always fail #235
Copy link
Copy link
Open
Description
If you run any hostname through UriNormalize, at some point the normalize function in the Uri module is run. This module calls normalizePath function.
This function appends a / to the end of the URI.
Next, when you try to validate the URI with Hostname validator with 'useTldCheck' => true, in the options, it will always fail.
Steps to reproduce
Have the following in a fieldset
$this->add(
[
'name' => 'someUrl',
'required' => true,
'type' => Text::class,
'options' => [
'label' => 'Some URL',
],
'attributes' => [
'maxlength' => 100,
],
]
);Have the following in an InputFilter:
$this->add(
[
'name' => 'someUrl',
'required' => true,
'filters' => [
['name' => StringTrim::class],
['name' => StripTags::class],
[
'name' => ToNull::class,
'options' => [
'type' => ToNull::TYPE_STRING,
],
],
[
'name' => UriNormalize::class,
'options' => [
'enforcedScheme' => 'https',
],
],
],
'validators' => [
[
'name' => StringLength::class,
'options' => [
'min' => 1,
'max' => 100,
],
],
[
'name' => Hostname::class,
'options' => [
'allow' => Hostname::ALLOW_DNS,
// Allow only DNS names
'useIdnCheck' => true,
// Check IDN domains - International Domain Names - supports international characters in DNS of country TLD, e.g. *.de (Germany) TLD
'useTldCheck' => true,
// Validates the existence of the TLD itself (the .com part of the domain)
],
],
[
'name' => Uri::class,
'options' => [
'allowRelative' => false,
],
],
],
]
);I've got a few more issues reported that I'm solving, next to projects and a full-time job, I most likely will not have time to fix this. Would appreciate someone stepping in to fix this one. If not I might get around to it after other issues in zend-form and/or zend-inputfilter are finished.
Metadata
Metadata
Assignees
Labels
No labels
