Skip to content

Commit ec51cb4

Browse files
committed
impl: let upstream code decide which interceptors to install
Proxy support is enabled for every upstream usage
1 parent 1a460aa commit ec51cb4

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

src/main/kotlin/com/coder/toolbox/sdk/CoderHttpClientBuilder.kt

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
package com.coder.toolbox.sdk
22

33
import com.coder.toolbox.CoderToolboxContext
4-
import com.coder.toolbox.sdk.interceptors.Interceptors
54
import com.coder.toolbox.util.CoderHostnameVerifier
65
import com.coder.toolbox.util.coderSocketFactory
76
import com.coder.toolbox.util.coderTrustManagers
87
import com.jetbrains.toolbox.api.remoteDev.connection.ProxyAuth
98
import okhttp3.Credentials
9+
import okhttp3.Interceptor
1010
import okhttp3.OkHttpClient
11-
import java.net.URL
1211
import javax.net.ssl.X509TrustManager
1312

1413
object CoderHttpClientBuilder {
1514
fun build(
1615
context: CoderToolboxContext,
17-
pluginVersion: String,
18-
url: URL,
19-
token: String?,
16+
interceptors: List<Interceptor>
2017
): OkHttpClient {
2118
val settings = context.settingsStore.readOnly()
2219

@@ -46,20 +43,14 @@ object CoderHttpClientBuilder {
4643
.build()
4744
}
4845

49-
if (context.settingsStore.requireTokenAuth) {
50-
if (token.isNullOrBlank()) {
51-
throw IllegalStateException("Token is required for $url deployment")
52-
}
53-
builder = builder.addInterceptor(Interceptors.tokenAuth(token))
54-
}
55-
56-
return builder
57-
.sslSocketFactory(socketFactory, trustManagers[0] as X509TrustManager)
46+
builder.sslSocketFactory(socketFactory, trustManagers[0] as X509TrustManager)
5847
.hostnameVerifier(CoderHostnameVerifier(settings.tls.altHostname))
5948
.retryOnConnectionFailure(true)
60-
.addInterceptor(Interceptors.userAgent(pluginVersion))
61-
.addInterceptor(Interceptors.externalHeaders(context, url))
62-
.addInterceptor(Interceptors.logging(context))
63-
.build()
49+
50+
interceptors.forEach { interceptor ->
51+
builder.addInterceptor(interceptor)
52+
53+
}
54+
return builder.build()
6455
}
6556
}

src/main/kotlin/com/coder/toolbox/sdk/CoderRestClient.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.coder.toolbox.sdk.convertors.LoggingConverterFactory
77
import com.coder.toolbox.sdk.convertors.OSConverter
88
import com.coder.toolbox.sdk.convertors.UUIDConverter
99
import com.coder.toolbox.sdk.ex.APIResponseException
10+
import com.coder.toolbox.sdk.interceptors.Interceptors
1011
import com.coder.toolbox.sdk.v2.CoderV2RestFacade
1112
import com.coder.toolbox.sdk.v2.models.ApiErrorResponse
1213
import com.coder.toolbox.sdk.v2.models.BuildInfo
@@ -59,12 +60,21 @@ open class CoderRestClient(
5960
.add(OSConverter())
6061
.add(UUIDConverter())
6162
.build()
63+
val interceptors = buildList {
64+
if (context.settingsStore.requireTokenAuth) {
65+
if (token.isNullOrBlank()) {
66+
throw IllegalStateException("Token is required for $url deployment")
67+
}
68+
add(Interceptors.tokenAuth(token))
69+
}
70+
add((Interceptors.userAgent(pluginVersion)))
71+
add(Interceptors.externalHeaders(context, url))
72+
add(Interceptors.logging(context))
73+
}
6274

6375
httpClient = CoderHttpClientBuilder.build(
6476
context,
65-
pluginVersion,
66-
url,
67-
token
77+
interceptors
6878
)
6979

7080
retroRestClient =

0 commit comments

Comments
 (0)