File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed
client-runtime/protocols/http/common
src/aws/sdk/kotlin/runtime/http/middleware
test/aws/sdk/kotlin/runtime/http/middleware Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -38,8 +38,12 @@ public class UserAgent(private val awsUserAgentMetadata: AwsUserAgentMetadata) :
3838
3939 override fun <I , O > install (operation : SdkHttpOperation <I , O >) {
4040 operation.execution.mutate.intercept { req, next ->
41- req.subject.headers[USER_AGENT ] = awsUserAgentMetadata.userAgent
42- req.subject.headers[X_AMZ_USER_AGENT ] = awsUserAgentMetadata.xAmzUserAgent
41+ // NOTE: Due to legacy issues with processing the user agent, the original content for
42+ // x-amz-user-agent and User-Agent is swapped here. See top note in the
43+ // sdk-user-agent-header SEP and https://github.com/awslabs/smithy-kotlin/issues/373
44+ // for further details.
45+ req.subject.headers[USER_AGENT ] = awsUserAgentMetadata.xAmzUserAgent
46+ req.subject.headers[X_AMZ_USER_AGENT ] = awsUserAgentMetadata.userAgent
4347 next.call(req)
4448 }
4549 }
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ import software.aws.clientrt.http.sdkHttpClient
2020import software.aws.clientrt.time.Instant
2121import software.aws.clientrt.util.get
2222import kotlin.test.Test
23+ import kotlin.test.assertEquals
2324import kotlin.test.assertTrue
2425
2526class UserAgentTest {
@@ -53,5 +54,7 @@ class UserAgentTest {
5354 val request = op.context[HttpOperationContext .HttpCallList ].last().request
5455 assertTrue(request.headers.contains(USER_AGENT ))
5556 assertTrue(request.headers.contains(X_AMZ_USER_AGENT ))
57+ assertEquals(" aws-sdk-kotlin/1.2.3" , request.headers[X_AMZ_USER_AGENT ])
58+ assertTrue(request.headers[USER_AGENT ]!! .startsWith(" aws-sdk-kotlin/1.2.3 api/test-service/1.2.3" ))
5659 }
5760}
You can’t perform that action at this time.
0 commit comments