mirror of
https://github.com/nextcloud/server.git
synced 2026-06-08 08:16:43 -04:00
[BUGFIX] check return value and improve error handling
With S3 primary storage there was a problem with getting the CA bundle from the storage without having the CA bundle for the connection which causes that the CertificateManager was throwing an Error. This commit improves the handling in CertificateManager and log unexpected behaviors. Signed-off-by: Jan Messer <jan@mtec-studios.ch>
This commit is contained in:
parent
0126247439
commit
7a443863fe
1 changed files with 8 additions and 5 deletions
|
|
@ -228,7 +228,7 @@ class CertificateManager implements ICertificateManager {
|
|||
*/
|
||||
public function getAbsoluteBundlePath(): string {
|
||||
try {
|
||||
if (!$this->bundlePath) {
|
||||
if ($this->bundlePath === null) {
|
||||
if (!$this->hasCertificates()) {
|
||||
$this->bundlePath = \OC::$SERVERROOT . '/resources/config/ca-bundle.crt';
|
||||
}
|
||||
|
|
@ -237,13 +237,16 @@ class CertificateManager implements ICertificateManager {
|
|||
$this->createCertificateBundle();
|
||||
}
|
||||
|
||||
$this->bundlePath = $this->view->getLocalFile($this->getCertificateBundle()) ?: null;
|
||||
}
|
||||
if ($this->bundlePath === null) {
|
||||
throw new \Exception('Failed to get absolute bundle path');
|
||||
$certificateBundle = $this->getCertificateBundle();
|
||||
$this->bundlePath = $this->view->getLocalFile($certificateBundle) ?: null;
|
||||
|
||||
if ($this->bundlePath === null) {
|
||||
throw new \RuntimeException('Unable to get certificate bundle "' . $certificateBundle . '".');
|
||||
}
|
||||
}
|
||||
return $this->bundlePath;
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->error('Failed to get absolute bundle path. Fallback to default ca-bundle.crt', ['exception' => $e]);
|
||||
return \OC::$SERVERROOT . '/resources/config/ca-bundle.crt';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue