From aa745d29c511f2433b9cbccec1c919b7cf0cd112 Mon Sep 17 00:00:00 2001 From: Mathieu Lechat Date: Tue, 31 Oct 2017 13:02:21 +0100 Subject: [PATCH] allow token to be null --- .../Component/Security/Http/Firewall/LogoutListener.php | 7 +++---- .../Security/Http/Logout/CookieClearingLogoutHandler.php | 2 +- .../Security/Http/Logout/LogoutHandlerInterface.php | 2 +- .../Security/Http/Logout/SessionLogoutHandler.php | 2 +- .../Http/RememberMe/AbstractRememberMeServices.php | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php b/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php index 21819ce4a9968..d9062560134fd 100644 --- a/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/LogoutListener.php @@ -94,10 +94,9 @@ public function handle(GetResponseEvent $event) } // handle multiple logout attempts gracefully - if ($token = $this->tokenStorage->getToken()) { - foreach ($this->handlers as $handler) { - $handler->logout($request, $response, $token); - } + $token = $this->tokenStorage->getToken(); + foreach ($this->handlers as $handler) { + $handler->logout($request, $response, $token); } $this->tokenStorage->setToken(null); diff --git a/src/Symfony/Component/Security/Http/Logout/CookieClearingLogoutHandler.php b/src/Symfony/Component/Security/Http/Logout/CookieClearingLogoutHandler.php index b96bc43a78d5d..28fd164430df4 100644 --- a/src/Symfony/Component/Security/Http/Logout/CookieClearingLogoutHandler.php +++ b/src/Symfony/Component/Security/Http/Logout/CookieClearingLogoutHandler.php @@ -35,7 +35,7 @@ public function __construct(array $cookies) /** * Implementation for the LogoutHandlerInterface. Deletes all requested cookies. */ - public function logout(Request $request, Response $response, TokenInterface $token) + public function logout(Request $request, Response $response, TokenInterface $token = null) { foreach ($this->cookies as $cookieName => $cookieData) { $response->headers->clearCookie($cookieName, $cookieData['path'], $cookieData['domain']); diff --git a/src/Symfony/Component/Security/Http/Logout/LogoutHandlerInterface.php b/src/Symfony/Component/Security/Http/Logout/LogoutHandlerInterface.php index 363bc4abe1630..b4752b4cf039c 100644 --- a/src/Symfony/Component/Security/Http/Logout/LogoutHandlerInterface.php +++ b/src/Symfony/Component/Security/Http/Logout/LogoutHandlerInterface.php @@ -27,5 +27,5 @@ interface LogoutHandlerInterface * to be logged out. Usually, you would unset session variables, or remove * cookies, etc. */ - public function logout(Request $request, Response $response, TokenInterface $token); + public function logout(Request $request, Response $response, TokenInterface $token = null); } diff --git a/src/Symfony/Component/Security/Http/Logout/SessionLogoutHandler.php b/src/Symfony/Component/Security/Http/Logout/SessionLogoutHandler.php index 7f362de9d7a2b..302de5fd4a2d4 100644 --- a/src/Symfony/Component/Security/Http/Logout/SessionLogoutHandler.php +++ b/src/Symfony/Component/Security/Http/Logout/SessionLogoutHandler.php @@ -25,7 +25,7 @@ class SessionLogoutHandler implements LogoutHandlerInterface /** * Invalidate the current session. */ - public function logout(Request $request, Response $response, TokenInterface $token) + public function logout(Request $request, Response $response, TokenInterface $token = null) { $request->getSession()->invalidate(); } diff --git a/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeServices.php b/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeServices.php index afff015ed47b9..30bc5abd89445 100644 --- a/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeServices.php +++ b/src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeServices.php @@ -155,7 +155,7 @@ final public function autoLogin(Request $request) /** * Implementation for LogoutHandlerInterface. Deletes the cookie. */ - public function logout(Request $request, Response $response, TokenInterface $token) + public function logout(Request $request, Response $response, TokenInterface $token = null) { $this->cancelCookie($request); }