MCPcopy Create free account
hub / github.com/aws/aws-cli / add_auth

Method add_auth

awscli/botocore/auth.py:566–605  ·  view source on GitHub ↗
(self, request)

Source from the content-addressed store, hash-verified

564 REQUIRES_IDENTITY_CACHE = True
565
566 def add_auth(self, request):
567 datetime_now = datetime.datetime.utcnow()
568 request.context['timestamp'] = datetime_now.strftime(SIGV4_TIMESTAMP)
569
570 fields = {}
571 if request.context.get('s3-presign-post-fields', None) is not None:
572 fields = request.context['s3-presign-post-fields']
573
574 policy = {}
575 conditions = []
576 if request.context.get('s3-presign-post-policy', None) is not None:
577 policy = request.context['s3-presign-post-policy']
578 if policy.get('conditions', None) is not None:
579 conditions = policy['conditions']
580
581 policy['conditions'] = conditions
582
583 fields['x-amz-algorithm'] = 'AWS4-HMAC-SHA256'
584 fields['x-amz-credential'] = self.scope(request)
585 fields['x-amz-date'] = request.context['timestamp']
586
587 conditions.append({'x-amz-algorithm': 'AWS4-HMAC-SHA256'})
588 conditions.append({'x-amz-credential': self.scope(request)})
589 conditions.append({'x-amz-date': request.context['timestamp']})
590
591 if self.credentials.token is not None:
592 fields['X-Amz-S3session-Token'] = self.credentials.token
593 conditions.append(
594 {'X-Amz-S3session-Token': self.credentials.token}
595 )
596
597 # Dump the base64 encoded policy into the fields dictionary.
598 fields['policy'] = base64.b64encode(
599 json.dumps(policy).encode('utf-8')
600 ).decode('utf-8')
601
602 fields['x-amz-signature'] = self.signature(fields['policy'], request)
603
604 request.context['s3-presign-post-fields'] = fields
605 request.context['s3-presign-post-policy'] = policy
606
607
608class S3ExpressQueryAuth(S3ExpressAuth):

Callers

nothing calls this directly

Calls 4

scopeMethod · 0.80
decodeMethod · 0.80
signatureMethod · 0.80
encodeMethod · 0.45

Tested by

no test coverage detected