Skip to content

Commit 2fea866

Browse files
ktheragenicolas-grekas
authored andcommitted
[Security] Remove deprecated RememberMeToken::getSecret()
1 parent c27eaeb commit 2fea866

File tree

6 files changed

+7
-61
lines changed

6 files changed

+7
-61
lines changed

UPGRADE-8.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ Security
388388
* Remove callable firewall listeners support, extend `AbstractListener` or implement `FirewallListenerInterface` instead
389389
* Remove `AbstractListener::__invoke`
390390
* Remove `LazyFirewallContext::__invoke()`
391+
* Remove `RememberMeToken::getSecret()`
391392

392393
SecurityBundle
393394
--------------

src/Symfony/Component/Security/Core/Authentication/Token/RememberMeToken.php

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
*/
2222
class RememberMeToken extends AbstractToken
2323
{
24-
private ?string $secret = null;
25-
2624
/**
2725
* @throws \InvalidArgumentException
2826
*/
@@ -32,11 +30,6 @@ public function __construct(
3230
) {
3331
parent::__construct($user->getRoles());
3432

35-
if (\func_num_args() > 2) {
36-
trigger_deprecation('symfony/security-core', '7.2', 'The "$secret" argument of "%s()" is deprecated.', __METHOD__);
37-
$this->secret = func_get_arg(2);
38-
}
39-
4033
if (!$firewallName) {
4134
throw new InvalidArgumentException('$firewallName must not be empty.');
4235
}
@@ -49,25 +42,14 @@ public function getFirewallName(): string
4942
return $this->firewallName;
5043
}
5144

52-
/**
53-
* @deprecated since Symfony 7.2
54-
*/
55-
public function getSecret(): string
56-
{
57-
trigger_deprecation('symfony/security-core', '7.2', 'The "%s()" method is deprecated.', __METHOD__);
58-
59-
return $this->secret ??= base64_encode(random_bytes(8));
60-
}
61-
6245
public function __serialize(): array
6346
{
64-
// $this->firewallName should be kept at index 1 for compatibility with payloads generated before Symfony 8
65-
return [$this->secret, $this->firewallName, parent::__serialize()];
47+
return [null, $this->firewallName, parent::__serialize()];
6648
}
6749

6850
public function __unserialize(array $data): void
6951
{
70-
[$this->secret, $this->firewallName, $parentData] = $data;
52+
[, $this->firewallName, $parentData] = $data;
7153
$parentData = \is_array($parentData) ? $parentData : unserialize($parentData);
7254
parent::__unserialize($parentData);
7355
}

src/Symfony/Component/Security/Core/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ CHANGELOG
44
8.0
55
---
66

7+
* Remove `RememberMeToken::getSecret()`
78
* Remove `UserInterface::eraseCredentials()` and `TokenInterface::eraseCredentials()`,
89
erase credentials e.g. using `__serialize()` instead
910

src/Symfony/Component/Security/Core/Tests/Authentication/Token/RememberMeTokenTest.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,6 @@ public function testConstructor()
2727
$this->assertSame($user, $token->getUser());
2828
}
2929

30-
/**
31-
* @group legacy
32-
*/
33-
public function testSecret()
34-
{
35-
$user = $this->getUser();
36-
$token = new RememberMeToken($user, 'fookey', 'foo');
37-
38-
$this->assertEquals('foo', $token->getSecret());
39-
}
40-
4130
protected function getUser($roles = ['ROLE_FOO'])
4231
{
4332
$user = $this->createMock(UserInterface::class);

src/Symfony/Component/Security/Core/composer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
],
1818
"require": {
1919
"php": ">=8.4",
20-
"symfony/deprecation-contracts": "^2.5|^3",
2120
"symfony/event-dispatcher-contracts": "^2.5|^3",
2221
"symfony/password-hasher": "^7.4|^8.0",
2322
"symfony/service-contracts": "^2.5|^3"

src/Symfony/Component/Security/Http/Authenticator/RememberMeAuthenticator.php

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -43,34 +43,12 @@
4343
*/
4444
class RememberMeAuthenticator implements InteractiveAuthenticatorInterface
4545
{
46-
private string $secret;
47-
private TokenStorageInterface $tokenStorage;
48-
private string $cookieName;
49-
private ?LoggerInterface $logger;
50-
51-
/**
52-
* @param TokenStorageInterface $tokenStorage
53-
* @param string $cookieName
54-
* @param ?LoggerInterface $logger
55-
*/
5646
public function __construct(
5747
private RememberMeHandlerInterface $rememberMeHandler,
58-
#[\SensitiveParameter] TokenStorageInterface|string $tokenStorage,
59-
string|TokenStorageInterface $cookieName,
60-
LoggerInterface|string|null $logger = null,
48+
private TokenStorageInterface $tokenStorage,
49+
private string $cookieName,
50+
private ?LoggerInterface $logger = null,
6151
) {
62-
if (\is_string($tokenStorage)) {
63-
trigger_deprecation('symfony/security-http', '7.2', 'The "$secret" argument of "%s()" is deprecated.', __METHOD__);
64-
65-
$this->secret = $tokenStorage;
66-
$tokenStorage = $cookieName;
67-
$cookieName = $logger;
68-
$logger = \func_num_args() > 4 ? func_get_arg(4) : null;
69-
}
70-
71-
$this->tokenStorage = $tokenStorage;
72-
$this->cookieName = $cookieName;
73-
$this->logger = $logger;
7452
}
7553

7654
public function supports(Request $request): ?bool
@@ -109,10 +87,6 @@ public function authenticate(Request $request): Passport
10987

11088
public function createToken(Passport $passport, string $firewallName): TokenInterface
11189
{
112-
if (isset($this->secret)) {
113-
return new RememberMeToken($passport->getUser(), $firewallName, $this->secret);
114-
}
115-
11690
return new RememberMeToken($passport->getUser(), $firewallName);
11791
}
11892

0 commit comments

Comments
 (0)