@@ -22,6 +22,8 @@ import com.intellij.openapi.components.Service
2222import com.intellij.openapi.diagnostic.Logger
2323import com.intellij.openapi.extensions.PluginId
2424import com.intellij.openapi.util.SystemInfo
25+ import com.intellij.util.net.HttpConfigurable
26+ import okhttp3.Credentials
2527import okhttp3.OkHttpClient
2628import okhttp3.internal.tls.OkHostnameVerifier
2729import okhttp3.logging.HttpLoggingInterceptor
@@ -95,9 +97,22 @@ class CoderRestClient(
9597 pluginVersion = PluginManagerCore .getPlugin(PluginId .getId(" com.coder.gateway" ))!! .version // this is the id from the plugin.xml
9698 }
9799
100+ val proxy = HttpConfigurable .getInstance()
101+
98102 val socketFactory = coderSocketFactory(settings)
99103 val trustManagers = coderTrustManagers(settings.tlsCAPath)
100104 httpClient = OkHttpClient .Builder ()
105+ .proxySelector(proxy.onlyBySettingsSelector)
106+ .proxyAuthenticator { _, response ->
107+ val login = proxy.proxyLogin
108+ val pass = proxy.plainProxyPassword
109+ if (proxy.PROXY_AUTHENTICATION && login != null && pass != null ) {
110+ val credentials = Credentials .basic(login, pass)
111+ response.request.newBuilder()
112+ .header(" Proxy-Authorization" , credentials)
113+ .build()
114+ } else null
115+ }
101116 .sslSocketFactory(socketFactory, trustManagers[0 ] as X509TrustManager )
102117 .hostnameVerifier(CoderHostnameVerifier (settings.tlsAlternateHostname))
103118 .addInterceptor { it.proceed(it.request().newBuilder().addHeader(" Coder-Session-Token" , token).build()) }
@@ -451,4 +466,4 @@ class MergedSystemTrustManger(private val otherTrustManager: X509TrustManager) :
451466 override fun getAcceptedIssuers (): Array <X509Certificate > {
452467 return otherTrustManager.acceptedIssuers + systemTrustManager.acceptedIssuers
453468 }
454- }
469+ }
0 commit comments