diff options
author | blizzz <blizzz@arthur-schiwon.de> | 2022-08-30 17:48:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-30 17:48:30 +0200 |
commit | a6be5e0dd7e6f3c17a383b098b9eefa58159160d (patch) | |
tree | 526ff3cbcfffc6218a7c87362b8d7589e2603fe6 /lib/private | |
parent | 7e980a1f1f4b0a58731181d8b80aa92f53deebdd (diff) | |
parent | 6e9fb83977fc83ad464e688819efa11b84a98bfb (diff) | |
download | nextcloud-server-a6be5e0dd7e6f3c17a383b098b9eefa58159160d.tar.gz nextcloud-server-a6be5e0dd7e6f3c17a383b098b9eefa58159160d.zip |
Merge pull request #33696 from nextcloud/backport/33375/stable24
[stable24] Add back TokenCleanupJob to invalidate old temporary tokens
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/Authentication/Token/TokenCleanupJob.php | 41 | ||||
-rw-r--r-- | lib/private/Repair.php | 2 | ||||
-rw-r--r-- | lib/private/Repair/NC24/AddTokenCleanupJob.php | 47 | ||||
-rw-r--r-- | lib/private/Setup.php | 2 |
4 files changed, 92 insertions, 0 deletions
diff --git a/lib/private/Authentication/Token/TokenCleanupJob.php b/lib/private/Authentication/Token/TokenCleanupJob.php new file mode 100644 index 00000000000..292f8f310e8 --- /dev/null +++ b/lib/private/Authentication/Token/TokenCleanupJob.php @@ -0,0 +1,41 @@ +<?php +/** + * @copyright 2022 Thomas Citharel <nextcloud@tcit.fr> + * + * @author Thomas Citharel <nextcloud@tcit.fr> + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ +namespace OC\Authentication\Token; + +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; + +class TokenCleanupJob extends TimedJob { + private IProvider $provider; + + public function __construct(ITimeFactory $time, IProvider $provider) { + parent::__construct($time); + $this->provider = $provider; + // Run once a day at off-peak time + $this->setInterval(24 * 60 * 60); + $this->setTimeSensitivity(self::TIME_INSENSITIVE); + } + + protected function run($argument) { + $this->provider->invalidateOldTokens(); + } +} diff --git a/lib/private/Repair.php b/lib/private/Repair.php index 91bfd47f5de..0f9f83889c6 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -46,6 +46,7 @@ use OC\Repair\ClearGeneratedAvatarCache; use OC\Repair\Collation; use OC\Repair\MoveUpdaterStepFile; use OC\Repair\NC22\LookupServerSendCheck; +use OC\Repair\NC24\AddTokenCleanupJob; use OC\Repair\Owncloud\CleanPreviews; use OC\Repair\Owncloud\MigrateOauthTables; use OC\Repair\NC11\FixMountStorages; @@ -210,6 +211,7 @@ class Repair implements IOutput { \OC::$server->get(AddCheckForUserCertificatesJob::class), \OC::$server->get(RepairDavShares::class), \OC::$server->get(LookupServerSendCheck::class), + \OC::$server->get(AddTokenCleanupJob::class), ]; } diff --git a/lib/private/Repair/NC24/AddTokenCleanupJob.php b/lib/private/Repair/NC24/AddTokenCleanupJob.php new file mode 100644 index 00000000000..97539c5692f --- /dev/null +++ b/lib/private/Repair/NC24/AddTokenCleanupJob.php @@ -0,0 +1,47 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Thomas Citharel <nextcloud@tcit.fr> + * + * @author Thomas Citharel <nextcloud@tcit.fr> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +namespace OC\Repair\NC24; + +use OC\Authentication\Token\TokenCleanupJob; +use OCP\BackgroundJob\IJobList; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; + +class AddTokenCleanupJob implements IRepairStep { + private IJobList $jobList; + + public function __construct(IJobList $jobList) { + $this->jobList = $jobList; + } + + public function getName(): string { + return 'Add token cleanup job'; + } + + public function run(IOutput $output) { + $this->jobList->add(TokenCleanupJob::class); + } +} diff --git a/lib/private/Setup.php b/lib/private/Setup.php index 177ede1e292..edbb9b33275 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -53,6 +53,7 @@ use Exception; use InvalidArgumentException; use OC\App\AppStore\Bundles\BundleFetcher; use OC\Authentication\Token\PublicKeyTokenProvider; +use OC\Authentication\Token\TokenCleanupJob; use OC\Log\Rotate; use OC\Preview\BackgroundCleanupJob; use OCP\AppFramework\Utility\ITimeFactory; @@ -450,6 +451,7 @@ class Setup { public static function installBackgroundJobs() { $jobList = \OC::$server->getJobList(); + $jobList->add(TokenCleanupJob::class); $jobList->add(Rotate::class); $jobList->add(BackgroundCleanupJob::class); } |