From fa5360cee6b09d92d6cff72c5fda2bb2783a838c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 25 Apr 2024 10:07:09 +0200 Subject: [PATCH 1/3] docs: Update token_auth_activity_update default value to match implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- config/config.sample.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index 48189e067c199..4560dfa762fca 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -339,7 +339,7 @@ * Tokens are still checked every 5 minutes for validity * max value: 300 * - * Defaults to ``300`` + * Defaults to ``60`` */ 'token_auth_activity_update' => 60, From 2a6116ec4c86f19ab4678b1ce29123dec68d9b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 25 Apr 2024 10:07:54 +0200 Subject: [PATCH 2/3] fix: Always set last activity if we update the row of an authtoken anyways MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Authentication/Token/PublicKeyTokenProvider.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/private/Authentication/Token/PublicKeyTokenProvider.php b/lib/private/Authentication/Token/PublicKeyTokenProvider.php index bab025973b974..d4671bb6dacc6 100644 --- a/lib/private/Authentication/Token/PublicKeyTokenProvider.php +++ b/lib/private/Authentication/Token/PublicKeyTokenProvider.php @@ -300,6 +300,8 @@ public function updateToken(IToken $token) { if (!($token instanceof PublicKeyToken)) { throw new InvalidTokenException("Invalid token type"); } + $now = $this->time->getTime(); + $token->setLastActivity($now); $this->mapper->update($token); $this->cacheToken($token); } From 0cc692886b5db8f49c3a3ae9025f1ff4fadbfeda Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Tue, 21 May 2024 07:55:01 +0200 Subject: [PATCH 3/3] fix(auth): Update authtoken activity selectively Signed-off-by: Christoph Wurst --- lib/private/Authentication/Token/PublicKeyTokenProvider.php | 2 -- lib/private/User/Session.php | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/private/Authentication/Token/PublicKeyTokenProvider.php b/lib/private/Authentication/Token/PublicKeyTokenProvider.php index d4671bb6dacc6..bab025973b974 100644 --- a/lib/private/Authentication/Token/PublicKeyTokenProvider.php +++ b/lib/private/Authentication/Token/PublicKeyTokenProvider.php @@ -300,8 +300,6 @@ public function updateToken(IToken $token) { if (!($token instanceof PublicKeyToken)) { throw new InvalidTokenException("Invalid token type"); } - $now = $this->time->getTime(); - $token->setLastActivity($now); $this->mapper->update($token); $this->cacheToken($token); } diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index 458982315032d..90ae35584787a 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -45,6 +45,7 @@ use OC\Authentication\Exceptions\PasswordLoginForbiddenException; use OC\Authentication\Token\IProvider; use OC\Authentication\Token\IToken; +use OC\Authentication\Token\PublicKeyToken; use OC\Hooks\Emitter; use OC\Hooks\PublicEmitter; use OC_User; @@ -772,6 +773,9 @@ private function checkTokenCredentials(IToken $dbToken, $token) { } $dbToken->setLastCheck($now); + if ($dbToken instanceof PublicKeyToken) { + $dbToken->setLastActivity($now); + } $this->tokenProvider->updateToken($dbToken); return true; }