zstackio / zstack

ZStack - the open-source IaaS software http://zstack.org (国内用户请至 http://zstack.io)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用AK调用API: GET 请求带 queryparam 报错: wrong accessKey signature

wanglong001 opened this issue · comments

版本:4.4.16 c76

cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

签名方法是根据这个脚本写的

#/usr/bin/python
import base64
import hmac
import sha
import argparse
from hashlib import sha1
 
parser = argparse.ArgumentParser(description='calculate zstack access key digit.')
parser.add_argument('acesskey_id')
parser.add_argument('acesskey_secret')
parser.add_argument('method')
parser.add_argument('date')
parser.add_argument('uri')
 
args = parser.parse_args()
 
print "args: %s" % args
h = hmac.new(args.acesskey_secret, args.method + "\n"
                                    + args.date + "\n"
                                    + args.uri, sha1)
Signature = base64.b64encode(h.digest())
print "Signature: %s" % Signature
print "Authoration %s" % ("ZStack " + args.acesskey_id + ":" + Signature)

GET 请求在不带参数下可以调用成功
image
带参数就回报签名错误:

image

image

错误: 403 wrong accessKey signature

知道了,看了你们的代码, GET 的 queryparam 不参与签名, 现在可以了, Close

image