|
|
@@ -22,8 +22,11 @@ import (
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
-func signRpcRequest(request requests.AcsRequest, signer Signer, regionId string) {
|
|
|
- completeRpcSignParams(request, signer, regionId)
|
|
|
+func signRpcRequest(request requests.AcsRequest, signer Signer, regionId string) (err error) {
|
|
|
+ err = completeRpcSignParams(request, signer, regionId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
// remove while retry
|
|
|
if _, containsSign := request.GetQueryParams()["Signature"]; containsSign {
|
|
|
delete(request.GetQueryParams(), "Signature")
|
|
|
@@ -32,9 +35,11 @@ func signRpcRequest(request requests.AcsRequest, signer Signer, regionId string)
|
|
|
request.SetStringToSign(stringToSign)
|
|
|
signature := signer.Sign(stringToSign, "&")
|
|
|
request.GetQueryParams()["Signature"] = signature
|
|
|
+
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
-func completeRpcSignParams(request requests.AcsRequest, signer Signer, regionId string) {
|
|
|
+func completeRpcSignParams(request requests.AcsRequest, signer Signer, regionId string) (err error) {
|
|
|
queryParams := request.GetQueryParams()
|
|
|
queryParams["Version"] = request.GetVersion()
|
|
|
queryParams["Action"] = request.GetActionName()
|
|
|
@@ -44,7 +49,11 @@ func completeRpcSignParams(request requests.AcsRequest, signer Signer, regionId
|
|
|
queryParams["SignatureType"] = signer.GetType()
|
|
|
queryParams["SignatureVersion"] = signer.GetVersion()
|
|
|
queryParams["SignatureNonce"] = utils.GetUUIDV4()
|
|
|
- queryParams["AccessKeyId"] = signer.GetAccessKeyId()
|
|
|
+ queryParams["AccessKeyId"], err = signer.GetAccessKeyId()
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
if _, contains := queryParams["RegionId"]; !contains {
|
|
|
queryParams["RegionId"] = regionId
|
|
|
@@ -58,6 +67,8 @@ func completeRpcSignParams(request requests.AcsRequest, signer Signer, regionId
|
|
|
request.GetHeaders()["Content-Type"] = requests.Form
|
|
|
formString := utils.GetUrlFormedMap(request.GetFormParams())
|
|
|
request.SetContent([]byte(formString))
|
|
|
+
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
func buildRpcStringToSign(request requests.AcsRequest) (stringToSign string) {
|