@@ -35,7 +35,6 @@ use OCP\AppFramework\Db\DoesNotExistException; | |||
use OCP\AppFramework\Utility\ITimeFactory; | |||
use OCP\IConfig; | |||
use OCP\ILogger; | |||
use OCP\IUser; | |||
use OCP\Security\ICrypto; | |||
class DefaultTokenProvider implements IProvider { | |||
@@ -299,7 +298,7 @@ class DefaultTokenProvider implements IProvider { | |||
* @param string $token | |||
* @return string | |||
*/ | |||
private function hashToken(string $token) { | |||
private function hashToken(string $token): string { | |||
$secret = $this->config->getSystemValue('secret'); | |||
return hash('sha512', $token . $secret); | |||
} |
@@ -25,7 +25,6 @@ namespace OC\Authentication\Token; | |||
use OC\Authentication\Exceptions\InvalidTokenException; | |||
use OC\Authentication\Exceptions\PasswordlessTokenException; | |||
use OCP\IUser; | |||
class Manager implements IProvider { | |||
@@ -92,6 +91,10 @@ class Manager implements IProvider { | |||
$provider->updateTokenActivity($token); | |||
} | |||
/** | |||
* @param string $uid | |||
* @return IToken[] | |||
*/ | |||
public function getTokenByUser(string $uid): array { | |||
$old = $this->defaultTokenProvider->getTokenByUser($uid); | |||
$new = $this->publicKeyTokenProvider->getTokenByUser($uid); | |||
@@ -185,6 +188,13 @@ class Manager implements IProvider { | |||
$this->publicKeyTokenProvider->invalidateOldTokens(); | |||
} | |||
/** | |||
* @param IToken $token | |||
* @param string $oldTokenId | |||
* @param string $newTokenId | |||
* @return IToken | |||
* @throws InvalidTokenException | |||
*/ | |||
public function rotate(IToken $token, string $oldTokenId, string $newTokenId): IToken { | |||
if ($token instanceof DefaultToken) { | |||
try { | |||
@@ -203,6 +213,11 @@ class Manager implements IProvider { | |||
throw new InvalidTokenException(); | |||
} | |||
/** | |||
* @param IToken $token | |||
* @return IProvider | |||
* @throws InvalidTokenException | |||
*/ | |||
private function getProvider(IToken $token): IProvider { | |||
if ($token instanceof DefaultToken) { | |||
return $this->defaultTokenProvider; |
@@ -1,4 +1,5 @@ | |||
<?php | |||
/** @noinspection ALL */ | |||
declare(strict_types=1); | |||
/** | |||
* @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl> | |||
@@ -180,7 +181,7 @@ class PublicKeyToken extends Entity implements IToken { | |||
} | |||
public function setScope($scope) { | |||
if (\is_array($scope)) { | |||
if (is_array($scope)) { | |||
parent::setScope(json_encode($scope)); | |||
} else { | |||
parent::setScope((string)$scope); |
@@ -115,7 +115,7 @@ class PublicKeyTokenMapper extends QBMapper { | |||
* where a high number of (session) tokens is generated | |||
* | |||
* @param string $uid | |||
* @return DefaultToken[] | |||
* @return PublicKeyToken[] | |||
*/ | |||
public function getTokenByUser(string $uid): array { | |||
/* @var $qb IQueryBuilder */ |
@@ -29,7 +29,6 @@ use OCP\AppFramework\Db\DoesNotExistException; | |||
use OCP\AppFramework\Utility\ITimeFactory; | |||
use OCP\IConfig; | |||
use OCP\ILogger; | |||
use OCP\IUser; | |||
use OCP\Security\ICrypto; | |||
class PublicKeyTokenProvider implements IProvider { |