|
@@ -34,7 +34,6 @@
|
|
|
namespace OC\Files\Storage;
|
|
|
|
|
|
use Exception;
|
|
|
-use GuzzleHttp\Exception\RequestException;
|
|
|
use OCP\ILogger;
|
|
|
use Psr\Http\Message\ResponseInterface;
|
|
|
use Icewind\Streams\CallbackWrapper;
|
|
@@ -46,6 +45,8 @@ use OCP\Constants;
|
|
|
use OCP\Files\FileInfo;
|
|
|
use OCP\Files\StorageInvalidException;
|
|
|
use OCP\Files\StorageNotAvailableException;
|
|
|
+use OCP\Http\Client\IClientService;
|
|
|
+use OCP\ICertificateManager;
|
|
|
use OCP\Util;
|
|
|
use Sabre\DAV\Client;
|
|
|
use Sabre\DAV\Xml\Property\ResourceType;
|
|
@@ -78,8 +79,10 @@ class DAV extends Common {
|
|
|
protected $client;
|
|
|
/** @var ArrayCache */
|
|
|
protected $statCache;
|
|
|
- /** @var \OCP\Http\Client\IClientService */
|
|
|
+ /** @var IClientService */
|
|
|
protected $httpClientService;
|
|
|
+ /** @var ICertificateManager */
|
|
|
+ protected $certManager;
|
|
|
|
|
|
/**
|
|
|
* @param array $params
|
|
@@ -110,13 +113,9 @@ class DAV extends Common {
|
|
|
}
|
|
|
if ($this->secure === true) {
|
|
|
// inject mock for testing
|
|
|
- $certManager = \OC::$server->getCertificateManager();
|
|
|
- if (is_null($certManager)) { //no user
|
|
|
- $certManager = \OC::$server->getCertificateManager(null);
|
|
|
- }
|
|
|
- $certPath = $certManager->getAbsoluteBundlePath();
|
|
|
- if (file_exists($certPath)) {
|
|
|
- $this->certPath = $certPath;
|
|
|
+ $this->certManager = \OC::$server->getCertificateManager();
|
|
|
+ if (is_null($this->certManager)) { //no user
|
|
|
+ $this->certManager = \OC::$server->getCertificateManager(null);
|
|
|
}
|
|
|
}
|
|
|
$this->root = $params['root'] ?? '/';
|
|
@@ -149,8 +148,15 @@ class DAV extends Common {
|
|
|
|
|
|
$this->client = new Client($settings);
|
|
|
$this->client->setThrowExceptions(true);
|
|
|
- if ($this->secure === true && $this->certPath) {
|
|
|
- $this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
|
|
|
+
|
|
|
+ if($this->secure === true) {
|
|
|
+ $certPath = $this->certManager->getAbsoluteBundlePath();
|
|
|
+ if (file_exists($certPath)) {
|
|
|
+ $this->certPath = $certPath;
|
|
|
+ }
|
|
|
+ if ($this->certPath) {
|
|
|
+ $this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|