Description
var AwsSignBeforeRequest resty.RequestMiddleware = func(client *resty.Client, req *resty.Request) error {
signer := v4.Signer{
Credentials: credentials.NewStaticCredentials(config.GetContext().Iam.KmrAk, config.GetContext().Iam.KmrSk, ""),
}
var reader *strings.Reader
if req.Body != nil {
marshal, err := json.Marshal(req.Body)
if err != nil {
return err
}
reader = strings.NewReader(string(marshal))
} else {
reader = strings.NewReader("")
}
service := req.Header.Get("SERVICE")
region := req.Header.Get("REGION")
if service == "" || region == "" {
return fmt.Errorf("SERVICE or REGION header is missing")
}
signTime := time.Now()
_, err := signer.Sign(req.RawRequest, reader, service, region, signTime)
if err != nil {
return err
}
return nil
}
like AwsSign plugin , can not do it
and preReqHook param RawRequest no body