Make external shares work with imported self-signed certificates

This commit is contained in:
Robin Appelman 2014-08-14 14:24:56 +02:00
parent ecdbf00628
commit c2ebc192a6
2 changed files with 14 additions and 2 deletions

View file

@ -113,9 +113,11 @@ class Manager {
* @return Mount
*/
protected function mountShare($data) {
$user = $this->userSession->getUser();
$data['manager'] = $this;
$mountPoint = '/' . $this->userSession->getUser()->getUID() . '/files' . $data['mountpoint'];
$mountPoint = '/' . $user->getUID() . '/files' . $data['mountpoint'];
$data['mountpoint'] = $mountPoint;
$data['certificateManager'] = \OC::$server->getCertificateManager($user);
$mount = new Mount(self::STORAGE, $mountPoint, $data, $this, $this->storageLoader);
$this->mountManager->addMount($mount);
return $mount;

View file

@ -37,6 +37,11 @@ class Storage extends DAV implements ISharedStorage {
*/
private $token;
/**
* @var \OCP\ICertificateManager
*/
private $certificateManager;
private $updateChecked = false;
/**
@ -46,6 +51,7 @@ class Storage extends DAV implements ISharedStorage {
public function __construct($options) {
$this->manager = $options['manager'];
$this->certificateManager = $options['certificateManager'];
$this->remote = $options['remote'];
$this->remoteUser = $options['owner'];
list($protocol, $remote) = explode('://', $this->remote);
@ -190,7 +196,11 @@ class Storage extends DAV implements ISharedStorage {
http_build_query(array('password' => $password)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, $this->certificateManager->getCertificateBundle());
$result = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);