Skip to content

Commit 3fadf2b

Browse files
committed
hack it all together
1 parent 0b3a713 commit 3fadf2b

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

codegen/core/src/main/java/software/amazon/smithy/python/codegen/ClientGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,8 @@ async def _handle_attempt(
488488

489489
writer.pushState(new SignRequestSection());
490490
if (context.applicationProtocol().isHttpProtocol() && supportsAuth) {
491+
writer.addStdlibImport("binascii", "hexlify");
492+
writer.addStdlibImport("re");
491493
writer.write("""
492494
# Step 7i: sign the request
493495
if auth_option and signer:
@@ -496,8 +498,6 @@ async def _handle_attempt(
496498
"Signer properties: %s",
497499
auth_option.signer_properties
498500
)
499-
context._identity = identity
500-
context._signer_properties = auth_option.signer_properties
501501
context._transport_request = await signer.sign(
502502
http_request=context.transport_request,
503503
identity=identity,

codegen/core/src/main/java/software/amazon/smithy/python/codegen/integrations/RestJsonProtocolGenerator.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -409,12 +409,13 @@ public void wrapEventStream(GenerationContext context, PythonWriter writer) {
409409
codec = JSONCodec(default_timestamp_format=TimestampFormat.EPOCH_SECONDS)
410410
if has_input_stream:
411411
# TODO - Move this out of the RestJSON generator
412-
authorization_header = context.transport_request.fields.get("Authorization", "")
413-
signature = re.split("Signature=", authorization_header)[-1]
412+
signer_properties = context.properties.get("signer_properties") # type: ignore
413+
identity = context.properties.get("identity") # type: ignore
414+
signature = context.properties.get("signature") # type: ignore
414415
signer = AsyncEventSigner(
415-
signer_properties=context._signer_properties
416-
identity=context._identity,
417-
prior_signature=hexlify(signature)
416+
signing_properties=signer_properties, # type: ignore
417+
identity=identity, # type: ignore
418+
initial_signature=signature_bytes, # type: ignore
418419
)
419420
420421
if event_deserializer is not None:

packages/aws-sdk-signers/src/aws_sdk_signers/signers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -780,13 +780,12 @@ async def _compute_payload_hash(
780780

781781

782782
class AsyncEventSigner:
783-
784783
def __init__(
785784
self,
786785
*,
787786
signing_properties: SigV4SigningProperties,
788787
identity: AWSCredentialIdentity,
789-
intial_signature: bytes,
788+
initial_signature: bytes,
790789
):
791790
self._signing_properties = signing_properties
792791
self._identity = identity

packages/smithy-http/src/smithy_http/aio/crt.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,14 @@ async def _marshal_request(
292292
"""Create :py:class:`awscrt.http.HttpRequest` from
293293
:py:class:`smithy_http.aio.HTTPRequest`"""
294294
headers_list = []
295-
if "Host" not in request.fields:
295+
if "host" not in request.fields:
296296
request.fields.set_field(
297-
Field(name="Host", values=[request.destination.host])
297+
Field(name="host", values=[request.destination.host])
298298
)
299299

300+
if "accept" not in request.fields:
301+
request.fields.set_field(Field(name="accept", values=["*/*"]))
302+
300303
for fld in request.fields.entries.values():
301304
# TODO: Use literal values for "header"/"trailer".
302305
if fld.kind.value != FieldPosition.HEADER.value:

0 commit comments

Comments
 (0)