in datahub/auth/aliyun_account.py [0:0]
def _build_canonical_str(url_components, req):
# Build signing string
lines = [req.method, req.headers[Headers.CONTENT_TYPE], req.headers[Headers.DATE], ]
headers_to_sign = dict()
# req headers
headers = req.headers
for k, v in six.iteritems(headers):
k = k.lower()
if k.startswith('x-datahub-'):
headers_to_sign[k] = v
# url params
canonical_query = AliyunAccount._build_canonical_query(url_components.query)
headers_to_sign = OrderedDict([(k, headers_to_sign[k])
for k in sorted(headers_to_sign)])
logger.debug('headers to sign: %s' % headers_to_sign)
for k, v in six.iteritems(headers_to_sign):
lines.append('%s:%s' % (k, v))
lines.append(url_components.path + '?' + canonical_query if canonical_query else url_components.path)
return '\n'.join(lines)