@@ -50,20 +50,42 @@ OKTA_BROWSER_AUTH=true
5050#OktaAWSCLI
5151function 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