in alibabacloud_credentials/providers.py [0:0]
def _create_credential(self, turl=None):
tea_request = ph.get_new_request()
tea_request.query = {
'Action': 'GenerateSessionAccessKey',
'Format': 'JSON',
'Version': '2015-04-01',
'DurationSeconds': str(self.duration_seconds),
'AccessKeyId': self.access_key_id,
'SignatureMethod': 'HMAC-SHA1',
'SignatureVersion': '1.0'
}
tea_request.query["Timestamp"] = ph.get_iso_8061_date()
tea_request.query["SignatureNonce"] = ph.get_uuid()
str_to_sign = ph.compose_string_to_sign('GET', tea_request.query)
signature = ph.sign_string(str_to_sign, self.access_key_id + '&')
tea_request.query['Signature'] = signature
tea_request.protocol = 'https'
tea_request.headers['host'] = turl if turl else 'sts.aliyuncs.com'
# request
response = TeaCore.do_action(tea_request)
if response.status_code == 200:
dic = json.loads(response.body.decode('utf-8'))
if "SessionAccessKey" in dic:
cre = dic.get("SessionAccessKey")
time_array = time.strptime(cre.get("Expiration"), "%Y-%m-%dT%H:%M:%SZ")
expiration = calendar.timegm(time_array)
return credentials.RsaKeyPairCredential(cre.get("SessionAccessKeyId"),
cre.get("SessionAccessKeySecret"),
expiration, self)
raise CredentialException(response.body.decode('utf-8'))