copy remember-me value when renewing a session token

On renew, a session token is duplicated. For some reason we did
not copy over the remember-me attribute value. Hence, the new token
was deleted too early in the background job and remember-me did
not work properly.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst 2016-11-27 14:19:57 +01:00
parent 7e6f829d54
commit 2183a1f3e6
2 changed files with 12 additions and 1 deletions

View File

@ -192,6 +192,7 @@ class DefaultTokenProvider implements IProvider {
$newToken->setName($token->getName());
$newToken->setToken($this->hashToken($sessionId));
$newToken->setType(IToken::TEMPORARY_TOKEN);
$newToken->setRemember($token->getRemember());
$newToken->setLastActivity($this->time->getTime());
$this->mapper->insert($newToken);
}

View File

@ -292,6 +292,10 @@ class DefaultTokenProviderTest extends TestCase {
->expects($this->at(3))
->method('getName')
->willReturn('MyTokenName');
$token
->expects($this->at(3))
->method('getRememberMe')
->willReturn(IToken::DO_NOT_REMEMBER);
$this->config
->expects($this->exactly(2))
->method('getSystemValue')
@ -308,6 +312,7 @@ class DefaultTokenProviderTest extends TestCase {
$newToken->setName('MyTokenName');
$newToken->setToken(hash('sha512', 'newId' . 'MyInstanceSecret'));
$newToken->setType(IToken::TEMPORARY_TOKEN);
$newToken->setRemember(IToken::DO_NOT_REMEMBER);
$newToken->setLastActivity(1313131);
$this->mapper
->expects($this->at(1))
@ -342,6 +347,10 @@ class DefaultTokenProviderTest extends TestCase {
->expects($this->at(4))
->method('getName')
->willReturn('MyTokenName');
$token
->expects($this->at(3))
->method('getRememberMe')
->willReturn(IToken::REMEMBER);
$this->crypto
->expects($this->any(0))
->method('decrypt')
@ -368,12 +377,13 @@ class DefaultTokenProviderTest extends TestCase {
$newToken->setName('MyTokenName');
$newToken->setToken(hash('sha512', 'newId' . 'MyInstanceSecret'));
$newToken->setType(IToken::TEMPORARY_TOKEN);
$newToken->setRemember(IToken::REMEMBER);
$newToken->setLastActivity(1313131);
$newToken->setPassword('EncryptedPassword');
$this->mapper
->expects($this->at(1))
->method('insert')
->with($newToken);
->with($this->equalTo($newToken));
$this->tokenProvider->renewSessionToken('oldId', 'newId');
}