diff --git a/lib/filelib.php b/lib/filelib.php index 5e21d8c96f2..dea73420e62 100644 --- a/lib/filelib.php +++ b/lib/filelib.php @@ -3847,6 +3847,7 @@ class curl { $redirects++; + $currenturl = $redirecturl ?? $url; $redirecturl = null; if (isset($this->info['redirect_url'])) { if (preg_match('|^https?://|i', $this->info['redirect_url'])) { @@ -3904,6 +3905,12 @@ class curl { } curl_setopt($curl, CURLOPT_URL, $redirecturl); + + if (parse_url($currenturl)['host'] !== parse_url($redirecturl)['host']) { + curl_setopt($curl, CURLOPT_HTTPAUTH, null); + curl_setopt($curl, CURLOPT_USERPWD, null); + } + $ret = curl_exec($curl); $this->info = curl_getinfo($curl);