Skip to content

Commit

Permalink
[Cache][DependencyInjection][Lock][Mailer][Messenger][Notifier][Trans…
Browse files Browse the repository at this point in the history
…lation] Url decode username and passwords from `parse_url()` results
  • Loading branch information
alexandre-daubois authored and nicolas-grekas committed Jan 2, 2024
1 parent 1a6accb commit 98ea3a5
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions Transport/Dsn.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,25 @@ public function __construct(string $dsn)
{
$this->originalDsn = $dsn;

if (false === $parsedDsn = parse_url($dsn)) {
if (false === $params = parse_url($dsn)) {
throw new InvalidArgumentException('The notifier DSN is invalid.');
}

if (!isset($parsedDsn['scheme'])) {
if (!isset($params['scheme'])) {
throw new InvalidArgumentException('The notifier DSN must contain a scheme.');
}
$this->scheme = $parsedDsn['scheme'];
$this->scheme = $params['scheme'];

if (!isset($parsedDsn['host'])) {
if (!isset($params['host'])) {
throw new InvalidArgumentException('The notifier DSN must contain a host (use "default" by default).');
}
$this->host = $parsedDsn['host'];
$this->host = $params['host'];

$this->user = '' !== ($parsedDsn['user'] ?? '') ? urldecode($parsedDsn['user']) : null;
$this->password = '' !== ($parsedDsn['pass'] ?? '') ? urldecode($parsedDsn['pass']) : null;
$this->port = $parsedDsn['port'] ?? null;
$this->path = $parsedDsn['path'] ?? null;
parse_str($parsedDsn['query'] ?? '', $this->options);
$this->user = '' !== ($params['user'] ?? '') ? rawurldecode($params['user']) : null;
$this->password = '' !== ($params['pass'] ?? '') ? rawurldecode($params['pass']) : null;
$this->port = $params['port'] ?? null;
$this->path = $params['path'] ?? null;
parse_str($params['query'] ?? '', $this->options);
}

public function getScheme(): string
Expand Down

0 comments on commit 98ea3a5

Please sign in to comment.