aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2022-04-20 12:15:39 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2022-04-20 12:15:39 +0200
commit1ec4563c2e110fe08ee00b88df47bfac53f55a6c (patch)
treef17391351261228ff27d5d7c2030245aa33358a3
parent1ea252fad5c6a57baf24c1483800a594ec8ba705 (diff)
downloadnextcloud-server-1ec4563c2e110fe08ee00b88df47bfac53f55a6c.tar.gz
nextcloud-server-1ec4563c2e110fe08ee00b88df47bfac53f55a6c.zip
log stacktrace for 'Backends provided no user object'
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r--lib/private/Files/Node/Root.php4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/private/Files/Node/Root.php b/lib/private/Files/Node/Root.php
index 8b599ddfd75..6dd65a4291d 100644
--- a/lib/private/Files/Node/Root.php
+++ b/lib/private/Files/Node/Root.php
@@ -365,6 +365,7 @@ class Root extends Folder implements IRootFolder {
$userObject = $this->userManager->get($userId);
if (is_null($userObject)) {
+ $e = new NoUserException('Backends provided no user object');
$this->logger->error(
sprintf(
'Backends provided no user object for %s',
@@ -372,9 +373,10 @@ class Root extends Folder implements IRootFolder {
),
[
'app' => 'files',
+ 'exception' => $e,
]
);
- throw new NoUserException('Backends provided no user object');
+ throw $e;
}
$userId = $userObject->getUID();
highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
 * SPDX-License-Identifier: AGPL-3.0-only
 */

namespace Test\Security;

use OCP\Security\ICredentialsManager;
use OCP\Server;

/**
 * @group DB
 */
class CredentialsManagerTest extends \Test\TestCase {
	/**
	 * @dataProvider credentialsProvider
	 */
	public function testWithDB($userId, $identifier): void {
		$credentialsManager = Server::get(ICredentialsManager::class);

		$secrets = 'Open Sesame';

		$credentialsManager->store($userId, $identifier, $secrets);
		$received = $credentialsManager->retrieve($userId, $identifier);

		$this->assertSame($secrets, $received);

		$removedRows = $credentialsManager->delete($userId, $identifier);
		$this->assertSame(1, $removedRows);
	}

	/**
	 * @dataProvider credentialsProvider
	 */
	public function testUpdate($userId, $identifier): void {
		$credentialsManager = Server::get(ICredentialsManager::class);

		$secrets = 'Open Sesame';
		$secretsRev = strrev($secrets);

		$credentialsManager->store($userId, $identifier, $secrets);
		$credentialsManager->store($userId, $identifier, $secretsRev);
		$received = $credentialsManager->retrieve($userId, $identifier);

		$this->assertSame($secretsRev, $received);
	}

	public function credentialsProvider(): array {
		return [
			[
				'alice',
				'privateCredentials'
			],
			[
				'',
				'systemCredentials',
			],
		];
	}
}