mirror of https://github.com/smithy-lang/smithy-rs
Smithy rs release 0.57.x backport snapshot fix (#3176)
This commit is contained in:
commit
6cb0b4613c
|
@ -9,4 +9,10 @@
|
||||||
# message = "Fix typos in module documentation for generated crates"
|
# message = "Fix typos in module documentation for generated crates"
|
||||||
# references = ["smithy-rs#920"]
|
# references = ["smithy-rs#920"]
|
||||||
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
|
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
|
||||||
# author = "rcoh"
|
# author = "rcoh"
|
||||||
|
|
||||||
|
[[aws-sdk-rust]]
|
||||||
|
message = "Fix aws-sdk-rust#930 (PutSnapshotBlock)"
|
||||||
|
references = ["smithy-rs#3126", "aws-sdk-rust#930"]
|
||||||
|
meta = { "breaking" = false, "tada" = false, "bug" = true }
|
||||||
|
author = "rcoh"
|
||||||
|
|
|
@ -226,7 +226,7 @@ private class AuthOperationCustomization(private val codegenContext: ClientCodeg
|
||||||
if (authSchemes.containsKey(SigV4Trait.ID)) {
|
if (authSchemes.containsKey(SigV4Trait.ID)) {
|
||||||
val unsignedPayload = section.operationShape.hasTrait<UnsignedPayloadTrait>()
|
val unsignedPayload = section.operationShape.hasTrait<UnsignedPayloadTrait>()
|
||||||
val doubleUriEncode = unsignedPayload || !disableDoubleEncode(codegenContext.serviceShape)
|
val doubleUriEncode = unsignedPayload || !disableDoubleEncode(codegenContext.serviceShape)
|
||||||
val contentSha256Header = needsAmzSha256(codegenContext.serviceShape)
|
val contentSha256Header = needsAmzSha256(codegenContext.serviceShape) || unsignedPayload
|
||||||
val normalizeUrlPath = !disableUriPathNormalization(codegenContext.serviceShape)
|
val normalizeUrlPath = !disableUriPathNormalization(codegenContext.serviceShape)
|
||||||
rustTemplate(
|
rustTemplate(
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
package software.amazon.smithy.rustsdk
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import software.amazon.smithy.rust.codegen.core.testutil.asSmithyModel
|
||||||
|
|
||||||
|
class SigV4AuthDecoratorTest {
|
||||||
|
private val modelWithSigV4AuthScheme = """
|
||||||
|
namespace test
|
||||||
|
|
||||||
|
use aws.auth#sigv4
|
||||||
|
use aws.api#service
|
||||||
|
use aws.protocols#restJson1
|
||||||
|
use smithy.rules#endpointRuleSet
|
||||||
|
use aws.auth#unsignedPayload
|
||||||
|
use smithy.test#httpRequestTests
|
||||||
|
|
||||||
|
@auth([sigv4])
|
||||||
|
@sigv4(name: "dontcare")
|
||||||
|
@restJson1
|
||||||
|
@endpointRuleSet({
|
||||||
|
"version": "1.0",
|
||||||
|
"rules": [{ "type": "endpoint", "conditions": [], "endpoint": { "url": "https://example.com" } }],
|
||||||
|
"parameters": {
|
||||||
|
"endpoint": { "required": true, "type": "string", "builtIn": "SDK::Endpoint" },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
@service(sdkId: "dontcare")
|
||||||
|
service TestService { version: "2023-01-01", operations: [SomeOperation] }
|
||||||
|
structure SomeOutput { something: String }
|
||||||
|
|
||||||
|
structure SomeInput {
|
||||||
|
@httpPayload
|
||||||
|
something: Bytestream
|
||||||
|
}
|
||||||
|
|
||||||
|
@streaming
|
||||||
|
blob Bytestream
|
||||||
|
|
||||||
|
@httpRequestTests([{
|
||||||
|
id: "unsignedPayload",
|
||||||
|
protocol: restJson1,
|
||||||
|
method: "POST",
|
||||||
|
uri: "/",
|
||||||
|
params: {
|
||||||
|
something: "hello"
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
"x-amz-content-sha256": "UNSIGNED-PAYLOAD",
|
||||||
|
},
|
||||||
|
}])
|
||||||
|
@unsignedPayload
|
||||||
|
@http(uri: "/", method: "POST")
|
||||||
|
operation SomeOperation { input: SomeInput, output: SomeOutput }
|
||||||
|
""".asSmithyModel()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun unsignedPayloadSetsCorrectHeader() {
|
||||||
|
awsSdkIntegrationTest(modelWithSigV4AuthScheme) { _, _ -> }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue