Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-04-23 20:32:41 +0300
committerRoeland Jago Douma <roeland@famdouma.nl>2018-04-23 20:34:09 +0300
commitba71918ad2f6fb336852fd492e5e819eb38201c9 (patch)
treeed42b73780dfc487f6fc115d16f00f7864b3ee4f
parent000f41ba01f7ebb0972e5f5509ebc66931083702 (diff)
Swift v3 requires setting a scope
Unscoped auth is not guaranteed to return a catalog. So require the scope to be set properly. See https://developer.openstack.org/api-ref/identity/v3/index.html#password-authentication-with-unscoped-authorization Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r--config/config.sample.php10
-rw-r--r--lib/private/Files/ObjectStore/SwiftFactory.php4
2 files changed, 13 insertions, 1 deletions
diff --git a/config/config.sample.php b/config/config.sample.php
index b0ed2e7aa67..7af3688b846 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -1235,10 +1235,18 @@ $CONFIG = array(
'name' => 'default',
],
],
+ 'scope' => [
+ 'project' => [
+ 'name' => 'service',
+ 'domain' => [
+ 'name' => 'default',
+ ],
+ ],
+ ],
'tenantName' => 'service',
'serviceName' => 'swift',
'region' => 'regionOne',
- 'url' => "http://yourswifthost:5000/v3",
+ 'url' => 'http://yourswifthost:5000/v3',
'bucket' => 'nextcloud',
],
],
diff --git a/lib/private/Files/ObjectStore/SwiftFactory.php b/lib/private/Files/ObjectStore/SwiftFactory.php
index 85bba573001..caa4774daba 100644
--- a/lib/private/Files/ObjectStore/SwiftFactory.php
+++ b/lib/private/Files/ObjectStore/SwiftFactory.php
@@ -108,6 +108,10 @@ class SwiftFactory {
]);
if (isset($this->params['user']) && isset($this->params['user']['name'])) {
+ if (!isset($this->params['scope'])) {
+ throw new StorageAuthException('Scope has to be defined for V3 requests');
+ }
+
return $this->auth(IdentityV3Service::factory($httpClient), $cacheKey);
} else {
return $this->auth(IdentityV2Service::factory($httpClient), $cacheKey);