Skip to content

Commit ed3f084

Browse files
committed
fix: resolve InvalidSignatureException from mismatched list header formatting during signing
1 parent 42d669f commit ed3f084

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def remove(self, value: str) -> None:
5757
"""Remove all matching entries from list."""
5858
...
5959

60-
def as_string(self, delimiter: str = ", ") -> str:
60+
def as_string(self, delimiter: str = ",") -> str:
6161
"""Serialize the ``Field``'s values into a single line string."""
6262
...
6363

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "bugfix",
3+
"description": "Fix `InvalidSignatureException` caused by mismatched list header formatting during signing (e.g., `MyHeader: value1, value2` vs `MyHeader: value1,value2`)."
4+
}

packages/smithy-http/src/smithy_http/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def as_string(self, delimiter: str = ",") -> str:
6363
return ""
6464
if value_count == 1:
6565
return self.values[0]
66-
return ", ".join(quote_and_escape_field_value(val) for val in self.values)
66+
return delimiter.join(quote_and_escape_field_value(val) for val in self.values)
6767

6868
def as_tuples(self) -> list[tuple[str, str]]:
6969
"""Get list of ``name``, ``value`` tuples where each tuple represents one

0 commit comments

Comments
 (0)