From a4958ae7ad9c8b066c089dc752ff50c847ce0bad Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Fri, 5 Mar 2021 11:17:34 +0100 Subject: [PATCH] [FrameworkBundle] Make the TestBrowserToken interchangeable with other tokens --- src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php | 2 +- .../Bundle/FrameworkBundle/Test/TestBrowserToken.php | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php b/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php index 40381e34aa..dff1eea251 100644 --- a/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php +++ b/src/Symfony/Bundle/FrameworkBundle/KernelBrowser.php @@ -120,7 +120,7 @@ class KernelBrowser extends HttpKernelBrowser throw new \LogicException(sprintf('The first argument of "%s" must be instance of "%s", "%s" provided.', __METHOD__, UserInterface::class, \is_object($user) ? \get_class($user) : \gettype($user))); } - $token = new TestBrowserToken($user->getRoles(), $user); + $token = new TestBrowserToken($user->getRoles(), $user, $firewallContext); $token->setAuthenticated(true); $session = $this->getContainer()->get('session'); $session->set('_security_'.$firewallContext, serialize($token)); diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/TestBrowserToken.php b/src/Symfony/Bundle/FrameworkBundle/Test/TestBrowserToken.php index 08f7b107d0..3343fbf0fb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Test/TestBrowserToken.php +++ b/src/Symfony/Bundle/FrameworkBundle/Test/TestBrowserToken.php @@ -21,13 +21,22 @@ use Symfony\Component\Security\Core\User\UserInterface; */ class TestBrowserToken extends AbstractToken { - public function __construct(array $roles = [], UserInterface $user = null) + private $firewallName; + + public function __construct(array $roles = [], UserInterface $user = null, string $firewallName = 'main') { parent::__construct($roles); if (null !== $user) { $this->setUser($user); } + + $this->firewallName = $firewallName; + } + + public function getFirewallName(): string + { + return $this->firewallName; } public function getCredentials()