Open
Description
Symfony version(s) affected
v7.1.6
Description
Found that correct url processed with error by url validator
$url = 'https://www.google.com/webhp?q={price}'; // valid url
$validator = SymfonyValidation::createValidator();
$constraints = [new Url(relativeProtocol: true, requireTld: false)];
$validator->validate($url, $constraints)->count(); // 1
Seems we need to add curly braces to allowed symbols in regex for query section of url.
How to reproduce
<?php
require_once __DIR__.'/vendor/autoload.php';
use Symfony\Component\Validator\Constraints;
$url = 'https://www.google.com/webhp?q={price}'; // valid url
$validator = SymfonyValidation::createValidator();
$constraints = [new Url(relativeProtocol: true, requireTld: false)];
var_dump($validator->validate($url, $constraints)->count()); //1
Possible Solution
current
(?:\? (?:[\pL\pN\-._\~!$&\'\[\]()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a query (optional)
added \{\}
(?:\? (?:[\pL\pN\-._\~!$&\'\[\]\{\}()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a query (optional)
Additional Context
No response