Skip to content

Commit 9a9ca5c

Browse files
authored
Merge pull request #245 from AlainODea/ao-BUG-socks-proxy-windows
🐛 SOCKS proxy won't work on Windows
2 parents a95b8a4 + 6aa27c9 commit 9a9ca5c

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

bin/Install-OktaAwsCli.ps1

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,42 @@ OKTA_BROWSER_AUTH=true
5050
#OktaAWSCLI
5151
function With-Okta {
5252
Param([string]$Profile)
53-
Write-Host $args
5453
$OriginalOKTA_PROFILE = $env:OKTA_PROFILE
5554
try {
5655
$env:OKTA_PROFILE = $Profile
5756
$InternetOptions = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
58-
if ($InternetOptions.ProxyServer) {
59-
($ProxyHost, $ProxyPort) = $InternetOptions.ProxyServer.Split(":")
60-
}
61-
if ($InternetOptions.ProxyOverride) {
62-
$NonProxyHosts = [System.String]::Join("|", ($InternetOptions.ProxyOverride.Replace("<local>", "").Split(";") | Where-Object {$_}))
57+
if ($InternetOptions.ProxyEnable) {
58+
$ProxyStrings = $InternetOptions.ProxyServer.Split(";")
59+
$Proxies = @{}
60+
ForEach ($ProxyString in $ProxyStrings) {
61+
if ($ProxyString.Contains("=")) {
62+
($ProxyProtocol,$ProxyServerPort) = $ProxyString.Split("=")
63+
} else {
64+
($ProxyProtocol,$ProxyServerPort) = ("http", $ProxyString)
65+
}
66+
($ProxyHost, $ProxyPort) = $ProxyServerPort.Split(":")
67+
$Proxies[$ProxyProtocol] = ($ProxyHost, $ProxyPort)
68+
}
69+
if ($Proxies.socks) {
70+
($ProxyHost, $ProxyPort) = $Proxies.socks
71+
} elseif ($Proxies.https) {
72+
($ProxyHost, $ProxyPort) = $Proxies.https
73+
} elseif ($Proxies.http) {
74+
($ProxyHost, $ProxyPort) = $Proxies.http
75+
}
76+
if ($InternetOptions.ProxyOverride) {
77+
$NonProxyHosts = [System.String]::Join("|", ($InternetOptions.ProxyOverride.Replace("<local>", "").Split(";") | Where-Object {$_}))
78+
} else {
79+
$NonProxyHosts = ""
80+
}
81+
if ($ProxyProtocol -eq "socks") {
82+
java "-DsocksProxyHost=$ProxyHost" "-DsocksProxyPort=$ProxyPort" "-Dhttp.nonProxyHosts=$NonProxyHosts" -classpath $HOME\.okta\* com.okta.tools.WithOkta @args
83+
} else {
84+
java "-Dhttp.proxyHost=$ProxyHost" "-Dhttp.proxyPort=$ProxyPort" "-Dhttps.proxyHost=$ProxyHost" "-Dhttps.proxyPort=$ProxyPort" "-Dhttp.nonProxyHosts=$NonProxyHosts" -classpath $HOME\.okta\* com.okta.tools.WithOkta @args
85+
}
6386
} else {
64-
$NonProxyHosts = ""
87+
java -classpath $HOME\.okta\* com.okta.tools.WithOkta @args
6588
}
66-
java "-Dhttp.proxyHost=$ProxyHost" "-Dhttp.proxyPort=$ProxyPort" "-Dhttps.proxyHost=$ProxyHost" "-Dhttps.proxyPort=$ProxyPort" "-Dhttp.nonProxyHosts=$NonProxyHosts" -classpath $HOME\.okta\* com.okta.tools.WithOkta @args
6789
} finally {
6890
$env:OKTA_PROFILE = $OriginalOKTA_PROFILE
6991
}

0 commit comments

Comments
 (0)