Skip to content

Commit 09d01be

Browse files
authored
feature #315 prevent leaking sensitive data in logs with the SensitiveParameter attribute
1 parent 9e01bdc commit 09d01be

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/Generator/ResetPasswordTokenGenerator.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class ResetPasswordTokenGenerator
2626
* @param string $signingKey Unique, random, cryptographically secure string
2727
*/
2828
public function __construct(
29+
#[\SensitiveParameter]
2930
private string $signingKey,
3031
private ResetPasswordRandomGenerator $generator
3132
) {

src/Model/ResetPasswordRequestTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ trait ResetPasswordRequestTrait
3030
#[ORM\Column(type: Types::DATETIME_IMMUTABLE)]
3131
protected \DateTimeInterface $expiresAt;
3232

33-
protected function initialize(\DateTimeInterface $expiresAt, string $selector, string $hashedToken): void
33+
protected function initialize(\DateTimeInterface $expiresAt, #[\SensitiveParameter] string $selector, #[\SensitiveParameter] string $hashedToken): void
3434
{
3535
$this->requestedAt = new \DateTimeImmutable('now');
3636
$this->expiresAt = $expiresAt;

src/Model/ResetPasswordTokenComponents.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,13 @@
2020
class ResetPasswordTokenComponents
2121
{
2222
public function __construct(
23+
#[\SensitiveParameter]
2324
private string $selector,
25+
26+
#[\SensitiveParameter]
2427
private string $verifier,
28+
29+
#[\SensitiveParameter]
2530
private string $hashedToken
2631
) {
2732
}

src/ResetPasswordHelper.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public function generateResetToken(object $user, ?int $resetRequestLifetime = nu
8787
* @throws ExpiredResetPasswordTokenException
8888
* @throws InvalidResetPasswordTokenException
8989
*/
90-
public function validateTokenAndFetchUser(string $fullToken): object
90+
public function validateTokenAndFetchUser(#[\SensitiveParameter] string $fullToken): object
9191
{
9292
$this->cleaner->handleGarbageCollection();
9393

@@ -123,7 +123,7 @@ public function validateTokenAndFetchUser(string $fullToken): object
123123
/**
124124
* @throws InvalidResetPasswordTokenException
125125
*/
126-
public function removeResetRequest(string $fullToken): void
126+
public function removeResetRequest(#[\SensitiveParameter] string $fullToken): void
127127
{
128128
$request = $this->findResetPasswordRequest($fullToken);
129129

@@ -159,7 +159,7 @@ public function generateFakeResetToken(?int $resetRequestLifetime = null): Reset
159159
return new ResetPasswordToken('fake-token', $expiresAt, $generatedAt);
160160
}
161161

162-
private function findResetPasswordRequest(string $token): ?ResetPasswordRequestInterface
162+
private function findResetPasswordRequest(#[\SensitiveParameter] string $token): ?ResetPasswordRequestInterface
163163
{
164164
$selector = substr($token, 0, self::SELECTOR_LENGTH);
165165

0 commit comments

Comments
 (0)