Expose sanitized Portainer connection errors

This commit is contained in:
Hermes Agent
2026-09-20 15:35:29 +00:00
parent 40cea4ca65
commit f45cc35bf7
2 changed files with 4 additions and 2 deletions
+1 -1
View File
@@ -47,4 +47,4 @@ Alle Einträge verwenden ISO-8601-Timestamps in UTC. Mehrere Änderungen desselb
- Browserinstaller korrigiert: Der initiale Administrator wird jetzt mit allen im `users`-Schema erforderlichen Pflichtfeldern angelegt. - Browserinstaller korrigiert: Der initiale Administrator wird jetzt mit allen im `users`-Schema erforderlichen Pflichtfeldern angelegt.
- Realm-Dashboard korrigiert: Es fragt nur noch die konfigurierte Portainer-Umgebung ab, benötigt keine globale Endpoint-Liste oder Endpoint-Metadaten mehr und verwendet direkt den Docker-Proxy. - Realm-Dashboard korrigiert: Es fragt nur noch die konfigurierte Portainer-Umgebung ab, benötigt keine globale Endpoint-Liste oder Endpoint-Metadaten mehr und verwendet direkt den Docker-Proxy.
- Fehlgeschlagene, bereits bezahlte Provisionierungen können durch Administratoren erneut gestartet werden. - Fehlgeschlagene, bereits bezahlte Provisionierungen können durch Administratoren erneut gestartet werden.
- Administratoren erhalten bei fehlgeschlagenen Instanzaktionen einen bereinigten technischen Diagnosehinweis. - Administratoren erhalten bei fehlgeschlagenen Instanzaktionen einen bereinigten technischen Diagnosehinweis inklusive cURL-Fehlerdetails bei Verbindungsproblemen.
+3 -1
View File
@@ -195,7 +195,9 @@ function pnpaas_portainer_request(string $path, string $method = 'GET', ?array $
curl_close($handle); curl_close($handle);
if ($body === false || $error !== '') { if ($body === false || $error !== '') {
throw new RuntimeException('Portainer ist nicht erreichbar.'); $detail = trim($error);
$detail = preg_replace('/(?:X-API-Key|Authorization|Bearer)\s*:\s*[^\s,;]+/i', '[credential redacted]', $detail) ?? $detail;
throw new RuntimeException('Portainer ist nicht erreichbar' . ($detail !== '' ? ': ' . substr($detail, 0, 400) : '.'));
} }
if ($status < 200 || ($status >= 300 && $status !== 304)) { if ($status < 200 || ($status >= 300 && $status !== 304)) {
$detail = trim(preg_replace('/\s+/', ' ', (string)$body) ?? ''); $detail = trim(preg_replace('/\s+/', ' ', (string)$body) ?? '');