summaryrefslogtreecommitdiffstats
path: root/Http/RememberMe/PersistentTokenBasedRememberMeServices.php
diff options
context:
space:
mode:
authorTerje Bråten <terje@braten.be>2012-11-18 22:41:04 +0100
committerTerje Bråten <terje@braten.be>2012-11-21 11:24:30 +0100
commitc8193736e5e7764eb8318b3aa012ca2b3c352753 (patch)
treebd85b55313defc591a958362ec411e0ebb590ae8 /Http/RememberMe/PersistentTokenBasedRememberMeServices.php
parent076ded139aa995790eca0580d589e0bcc8754a5a (diff)
downloadsymfony-security-c8193736e5e7764eb8318b3aa012ca2b3c352753.zip
symfony-security-c8193736e5e7764eb8318b3aa012ca2b3c352753.tar.gz
symfony-security-c8193736e5e7764eb8318b3aa012ca2b3c352753.tar.bz2
Try to make sure cookies get deleted from the TokenProvider when no longer in use
Diffstat (limited to 'Http/RememberMe/PersistentTokenBasedRememberMeServices.php')
-rw-r--r--Http/RememberMe/PersistentTokenBasedRememberMeServices.php9
1 files changed, 5 insertions, 4 deletions
diff --git a/Http/RememberMe/PersistentTokenBasedRememberMeServices.php b/Http/RememberMe/PersistentTokenBasedRememberMeServices.php
index dbb6429..2ad47f8 100644
--- a/Http/RememberMe/PersistentTokenBasedRememberMeServices.php
+++ b/Http/RememberMe/PersistentTokenBasedRememberMeServices.php
@@ -63,10 +63,12 @@ class PersistentTokenBasedRememberMeServices extends AbstractRememberMeServices
/**
* {@inheritDoc}
*/
- public function logout(Request $request, Response $response, TokenInterface $token)
+ protected function cancelCookie(Request $request)
{
- parent::logout($request, $response, $token);
+ // Delete cookie on the client
+ parent::cancelCookie($request);
+ // Delete cookie from the tokenProvider
if (null !== ($cookie = $request->cookies->get($this->options['name']))
&& count($parts = $this->decodeCookie($cookie)) === 2
) {
@@ -88,8 +90,6 @@ class PersistentTokenBasedRememberMeServices extends AbstractRememberMeServices
$persistentToken = $this->tokenProvider->loadTokenBySeries($series);
if ($persistentToken->getTokenValue() !== $tokenValue) {
- $this->tokenProvider->deleteTokenBySeries($series);
-
throw new CookieTheftException('This token was already used. The account is possibly compromised.');
}
@@ -133,6 +133,7 @@ class PersistentTokenBasedRememberMeServices extends AbstractRememberMeServices
)
);
+ $request->attributes->remove(self::COOKIE_ATTR_NAME);
$response->headers->setCookie(
new Cookie(
$this->options['name'],