How to use authenticate_presign_url_signv4 method in localstack

Best Python code snippet using localstack_python

s3_utils.py

Source:s3_utils.py Github

copy

Full Screen

...256 X-Amz-SignedHeaders and X-Amz-Signature parameters.",257 code_string="AccessDenied",258 )259 elif is_v4 and not is_v2:260 response = authenticate_presign_url_signv4(261 method, path, headers, data, url, query_params, request_dict262 )263 if response is not None:264 LOGGER.info("Presign signature calculation failed: %s" % response)265 return response266 LOGGER.debug("Valid presign url.")267def authenticate_presign_url_signv2(method, path, headers, data, url, query_params, request_dict):268 # Calculating Signature269 aws_request = create_request_object(request_dict)270 credentials = Credentials(271 access_key=TEST_AWS_ACCESS_KEY_ID,272 secret_key=TEST_AWS_SECRET_ACCESS_KEY,273 token=query_params.get("X-Amz-Security-Token", None),274 )275 auth = HmacV1QueryAuth(credentials=credentials, expires=query_params["Expires"][0])276 split = urlsplit(aws_request.url)277 string_to_sign = auth.get_string_to_sign(278 method=method, split=split, headers=aws_request.headers279 )280 signature = auth.get_signature(string_to_sign=string_to_sign)281 # Comparing the signature in url with signature we calculated282 query_sig = urlparse.unquote(query_params["Signature"][0])283 if config.S3_SKIP_SIGNATURE_VALIDATION:284 if query_sig != signature:285 LOGGER.warning(286 "Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1"287 )288 signature = query_sig289 if query_sig != signature:290 return requests_error_response_xml_signature_calculation(291 code=403,292 code_string="SignatureDoesNotMatch",293 aws_access_token=TEST_AWS_ACCESS_KEY_ID,294 string_to_sign=string_to_sign,295 signature=signature,296 message="The request signature we calculated does not match the signature you provided. \297 Check your key and signing method.",298 )299 # Checking whether the url is expired or not300 if int(query_params["Expires"][0]) < time.time():301 return requests_error_response_xml_signature_calculation(302 code=403,303 code_string="AccessDenied",304 message="Request has expired",305 expires=query_params["Expires"][0],306 )307def authenticate_presign_url_signv4(method, path, headers, data, url, query_params, request_dict):308 is_presign_valid = False309 for port in PORT_REPLACEMENT:310 match = re.match(HOST_COMBINATION_REGEX, urlparse.urlparse(request_dict["url"]).netloc)311 if match and match.group(2):312 request_dict["url"] = request_dict["url"].replace("%s" % match.group(2), "%s" % port)313 else:314 request_dict["url"] = "%s:%s" % (request_dict["url"], port)315 # Calculating Signature316 aws_request = create_request_object(request_dict)317 ReadOnlyCredentials = namedtuple(318 "ReadOnlyCredentials", ["access_key", "secret_key", "token"]319 )320 credentials = ReadOnlyCredentials(321 TEST_AWS_ACCESS_KEY_ID,...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful