Skip to content

Commit 8ba92d9

Browse files
stephenbawksrubenfonseca
authored andcommitted
updating some stuff
1 parent 9930eda commit 8ba92d9

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

Diff for: aws_lambda_powertools/utilities/iam/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Advanced feature flags utility"""
2-
from .auth import SigV4AuthFactory
2+
from .aws_auth import AwsSignedRequest
33

44
__all__ = [
5-
"SigV4AuthFactory",
5+
"AwsSignedRequest",
66
]

Diff for: aws_lambda_powertools/utilities/iam/auth.py renamed to aws_lambda_powertools/utilities/iam/aws_auth.py

+28-8
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11

22
from typing import Optional
33
from botocore.auth import SigV4Auth
4+
from botocore.awsrequest import AWSRequest
45
from botocore.credentials import Credentials
56
import botocore.session
67

78

8-
class SigV4AuthFactory:
9+
class AwsSignedRequest:
910
"""
10-
SigV4 authentication utility
11+
Authenticating Requests (AWS Signature Version 4)
1112
1213
Args:
1314
region (str): AWS region
@@ -24,28 +25,47 @@ class SigV4AuthFactory:
2425
**Using default credentials**
2526
>>> from aws_lambda_powertools.utilities.iam import SigV4AuthFactory
2627
>>> auth = SigV4AuthFactory(region="us-east-2", service="vpc-lattice-svcs")
28+
"""
2729

2830

29-
30-
"""
3131
def __init__(
3232
self,
33-
region: str,
3433
service: str,
34+
method: str,
35+
url: str,
36+
data: Optional[str],
37+
params: Optional[str],
38+
headers: Optional[str],
3539
access_key: Optional[str],
3640
secret_key: Optional[str],
3741
token: Optional[str],
42+
region: Optional[str],
43+
sign_payload: Optional[bool] = False,
3844
):
39-
self._region = region
45+
4046
self._service = service
47+
self._method = method
48+
self._url = url
49+
self._data = data
50+
self._params = params
51+
self._headers = headers
52+
53+
if not region:
54+
self._region = botocore.session.Session().get_config_variable("region")
55+
else:
56+
self._region = region
4157

4258
if access_key and secret_key or token:
4359
self._access_key = access_key
4460
self._secret_key = secret_key
4561
self._credentials = Credentials(access_key=self._access_key, secret_key=self._secret_key, token=token)
46-
4762
else:
4863
self._credentials = botocore.session.Session().get_credentials()
4964

5065
def __call__(self):
51-
return SigV4Auth(credentials=self._credentials, service=self._service, region=self._region)
66+
request = AWSRequest(method=self._method, url=self._url, data=self._data, params=self._params, headers=self._headers)
67+
if sign_payload is False:
68+
request.context["payload_signing_enabled"] = False
69+
70+
signed_request = SigV4Auth(credentials=self._credentials, service_name=self._service, region_name=self._region).add_auth(request)
71+
return signed_request.prepare()

0 commit comments

Comments
 (0)