diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Component/Security/Http/Logout/CookieClearingLogoutHandler.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Component/Security/Http/Logout/CookieClearingLogoutHandler.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Security\Http\Logout; + +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\Request; + +/** + * This handler clears the passed cookies when a user logs out. + * + * @author Johannes M. Schmitt + */ +class CookieClearingLogoutHandler implements LogoutHandlerInterface +{ + private $cookies; + + /** + * Constructor + * @param array $cookies An array of cookie names to unset + */ + public function __construct(array $cookies) + { + $this->cookies = $cookies; + } + + /** + * Implementation for the LogoutHandlerInterface. Deletes all requested cookies. + * + * @param Request $request + * @param Response $response + * @param TokenInterface $token + * @return void + */ + public function logout(Request $request, Response $response, TokenInterface $token) + { + foreach ($this->cookies as $cookieName => $cookieData) { + $response->headers->clearCookie($cookieName, $cookieData['path'], $cookieData['domain']); + } + } +}