Skip to content

Commit 3137202

Browse files
committed
Revert nullable argument and use nulltoken class
1 parent 704fc28 commit 3137202

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

Domain/SecurityIdentityRetrievalStrategy.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Symfony\Component\Security\Acl\Model\SecurityIdentityRetrievalStrategyInterface;
1515
use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface;
1616
use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
17+
use Symfony\Component\Security\Core\Authentication\Token\NullToken;
1718
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
1819
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
1920
use Symfony\Component\Security\Core\Role\RoleHierarchyInterface;
@@ -42,24 +43,22 @@ public function __construct(RoleHierarchyInterface $roleHierarchy, Authenticatio
4243
*
4344
* @return RoleSecurityIdentity[]
4445
*/
45-
public function getSecurityIdentities(?TokenInterface $token)
46+
public function getSecurityIdentities(TokenInterface $token)
4647
{
4748
$sids = [];
4849

4950
// add user security identity
50-
if (!$token instanceof AnonymousToken && null !== $token) {
51+
if (!$token instanceof AnonymousToken && !$token instanceof NullToken) {
5152
try {
5253
$sids[] = UserSecurityIdentity::fromToken($token);
5354
} catch (\InvalidArgumentException $e) {
5455
// ignore, user has no user security identity
5556
}
5657
}
5758

58-
if (null !== $token) {
59-
// add all reachable roles
60-
foreach ($this->roleHierarchy->getReachableRoleNames($token->getRoleNames()) as $role) {
61-
$sids[] = new RoleSecurityIdentity($role);
62-
}
59+
// add all reachable roles
60+
foreach ($this->roleHierarchy->getReachableRoleNames($token->getRoleNames()) as $role) {
61+
$sids[] = new RoleSecurityIdentity($role);
6362
}
6463

6564
// add built-in special roles
@@ -77,7 +76,7 @@ public function getSecurityIdentities(?TokenInterface $token)
7776
return $sids;
7877
}
7978

80-
private function isNotAuthenticated(?TokenInterface $token): bool
79+
private function isNotAuthenticated(TokenInterface $token): bool
8180
{
8281
if (\defined('\Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter::PUBLIC_ACCESS')) {
8382
return !$this->authenticationTrustResolver->isAuthenticated($token);

Tests/Domain/SecurityIdentityRetrievalStrategyTest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Component\Security\Acl\Tests\Domain;
1313

14-
use PHPUnit\Framework\Assert;
1514
use PHPUnit\Framework\TestCase;
1615
use Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity;
1716
use Symfony\Component\Security\Acl\Domain\SecurityIdentityRetrievalStrategy;
@@ -20,6 +19,7 @@
2019
use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface;
2120
use Symfony\Component\Security\Core\Authentication\Token\AbstractToken;
2221
use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
22+
use Symfony\Component\Security\Core\Authentication\Token\NullToken;
2323
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
2424
use Symfony\Component\Security\Core\Role\RoleHierarchyInterface;
2525
use Symfony\Component\Security\Core\User\UserInterface;
@@ -31,7 +31,7 @@ class SecurityIdentityRetrievalStrategyTest extends TestCase
3131
*/
3232
public function testGetSecurityIdentities($user, array $roles, string $authenticationStatus, array $sids)
3333
{
34-
$token = null;
34+
$token = class_exists(NullToken::class) ? new NullToken() : new AnonymousToken('', '');
3535
if ('anonymous' !== $authenticationStatus) {
3636
$class = '';
3737
if (\is_string($user)) {
@@ -190,8 +190,6 @@ public function __construct(array $roles)
190190

191191
public function getReachableRoleNames(array $roles): array
192192
{
193-
Assert::assertSame(['foo'], $roles);
194-
195193
return $this->roles;
196194
}
197195
};

0 commit comments

Comments
 (0)