How to use extract_service_name_from_auth_header method in localstack

Best Python code snippet using localstack_python

request_context.py

Source:request_context.py Github

copy

Full Screen

...112 result.headers["Authorization"] = aws_stack.mock_aws_request_headers(113 service_name, region_name=region_name114 )["Authorization"]115 return result116def extract_service_name_from_auth_header(headers: Dict) -> Optional[str]:117 try:118 auth_header = headers.get("authorization", "")119 credential_scope = auth_header.split(",")[0].split()[1]120 _, _, _, service, _ = credential_scope.split("/")121 return service122 except Exception:123 return124def patch_moto_request_handling():125 # leave here to avoid import issues126 from moto.core import utils as moto_utils127 # make sure we properly handle/propagate "not implemented" errors128 @patch(moto_utils.convert_to_flask_response.__call__)129 def convert_to_flask_response_call(fn, *args, **kwargs):130 try:131 return fn(*args, **kwargs)132 except NotImplementedError as e:133 action = request.headers.get("X-Amz-Target")134 action = action or f"{request.method} {urlparse(request.url).path}"135 if action == "POST /":136 # try to extract action from exception string137 match = re.match(r"The ([a-zA-Z0-9_-]+) action has not been implemented", str(e))138 if match:139 action = snake_to_camel_case(match.group(1))140 service = extract_service_name_from_auth_header(request.headers)141 msg = f"API action '{action}' for service '{service}' not yet implemented"142 response = requests_error_response(request.headers, msg, code=501)143 if config.MOCK_UNIMPLEMENTED:144 is_json = is_json_request(request.headers)145 headers = {HEADER_CONTENT_TYPE: APPLICATION_JSON if is_json else APPLICATION_XML}146 content = "{}" if is_json else "<Response />" # TODO: return proper mocked response147 response = requests_response(content, headers=headers)148 LOG.info(f"{msg}. Returning mocked response due to MOCK_UNIMPLEMENTED=1")149 else:150 LOG.info(msg)151 # TODO: publish analytics event ...152 return requests_to_flask_response(response)153 if config.USE_SINGLE_REGION:154 return...

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