Skip to content

Commit 70a6ee1

Browse files
committed
Sanitize etags to replace reserved characters and suppress PHPStan override warning in RedisDsnProvider.
1 parent 3f386f8 commit 70a6ee1

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/RedisDsnProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function __construct(
2929
) {
3030
}
3131

32-
public function get(): Redis|RedisArray|RedisCluster|ClientInterface|Relay
32+
public function get(): Redis|RedisArray|RedisCluster|ClientInterface|Relay // @phpstan-ignore-override
3333
{
3434
return RedisAdapter::createConnection($this->dns, $this->options);
3535
}

src/ResourceStorage.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ public function getDonut(AbstractUri $uri): ResourceDonut|null
110110
*/
111111
public function hasEtag(string $etag): bool
112112
{
113-
return $this->etagPool->hasItem($etag);
113+
// Sanitize etag to remove reserved characters
114+
$sanitizedEtag = str_replace(['/', '\\', ':', '@', '(', ')', '{', '}'], '_', $etag);
115+
return $this->etagPool->hasItem($sanitizedEtag);
114116
}
115117

116118
/**
@@ -254,7 +256,9 @@ public function saveEtag(AbstractUri $uri, string $etag, string $surrogateKeys,
254256
/** @var list<string> $uniqueTags */
255257
$uniqueTags = array_unique($tags);
256258
$this->logger->log('save-etag uri:%s etag:%s surrogate-keys:%s', $uri, $etag, $uniqueTags);
257-
$this->saver->__invoke($etag, 'etag', $this->etagPool, $uniqueTags, $ttl);
259+
// Sanitize etag to remove reserved characters
260+
$sanitizedEtag = str_replace(['/', '\\', ':', '@', '(', ')', '{', '}'], '_', $etag);
261+
$this->saver->__invoke($sanitizedEtag, 'etag', $this->etagPool, $uniqueTags, $ttl);
258262
}
259263

260264
public function __serialize(): array

0 commit comments

Comments
 (0)