Update-Check: Proxy-Authentifizierung unterstützen
Hinter authentifizierten Unternehmens-Proxys (NTLM/Kerberos) scheiterte der Update-Check mit HTTP 407, weil Invoke-RestMethod keine Anmeldeinformationen an den Proxy sendet. Jetzt werden die angemeldeten Windows-Credentials an den System-Proxy durchgereicht; optionaler expliziter Proxy via settings.json -> update.proxy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+19
-1
@@ -183,8 +183,26 @@ function Get-UpdateCheckEndpoint {
|
|||||||
if ($token) { $headers['Authorization'] = "token $token" }
|
if ($token) { $headers['Authorization'] = "token $token" }
|
||||||
|
|
||||||
try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 } catch {}
|
try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 } catch {}
|
||||||
|
|
||||||
|
# Proxy: Hinter authentifizierten Unternehmens-Proxys (NTLM/Kerberos) scheitert
|
||||||
|
# Invoke-RestMethod sonst mit "407 Proxyauthentifizierung erforderlich", weil
|
||||||
|
# standardmaessig keine Anmeldeinformationen an den Proxy gesendet werden. Die
|
||||||
|
# angemeldeten Windows-Credentials an den (System-)Proxy durchreichen. Optional
|
||||||
|
# laesst sich ein expliziter Proxy ueber Settings.update.proxy setzen.
|
||||||
|
$proxyArgs = @{}
|
||||||
try {
|
try {
|
||||||
$rel = Invoke-RestMethod -Uri $api -Headers $headers -Method GET -TimeoutSec 8
|
$proxyUrl = ''
|
||||||
|
if ($script:Settings.update -and $script:Settings.update.proxy) { $proxyUrl = [string]$script:Settings.update.proxy }
|
||||||
|
if ($proxyUrl) {
|
||||||
|
$proxyArgs['Proxy'] = $proxyUrl
|
||||||
|
$proxyArgs['ProxyUseDefaultCredentials'] = $true
|
||||||
|
} elseif ([System.Net.WebRequest]::DefaultWebProxy) {
|
||||||
|
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$rel = Invoke-RestMethod -Uri $api -Headers $headers -Method GET -TimeoutSec 8 @proxyArgs
|
||||||
$latest = ([string]$rel.tag_name).TrimStart('v','V')
|
$latest = ([string]$rel.tag_name).TrimStart('v','V')
|
||||||
$out.latest = $latest
|
$out.latest = $latest
|
||||||
$out.releaseUrl = [string]$rel.html_url
|
$out.releaseUrl = [string]$rel.html_url
|
||||||
|
|||||||
Reference in New Issue
Block a user