|
@@ -40,22 +40,29 @@ func (d *DcApiClient) RequestMiddleProcess(h *httplib.HTTPRequest, projectId str
|
|
ts := time.Now().Unix()
|
|
ts := time.Now().Unix()
|
|
h.Param("project_id", projectId)
|
|
h.Param("project_id", projectId)
|
|
h.Param("ts", fmt.Sprintf("%d", ts))
|
|
h.Param("ts", fmt.Sprintf("%d", ts))
|
|
- sign := d.CreateSign(h)
|
|
|
|
|
|
+ sign, err := d.CreateSign(h)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
h.Param("sign", sign)
|
|
h.Param("sign", sign)
|
|
return h.Bytes()
|
|
return h.Bytes()
|
|
}
|
|
}
|
|
|
|
|
|
-func (d *DcApiClient)CreateSign(h *httplib.HTTPRequest) string {
|
|
|
|
|
|
+func (d *DcApiClient)CreateSign(h *httplib.HTTPRequest) (string, error) {
|
|
s2, err := parseBody(h)
|
|
s2, err := parseBody(h)
|
|
if err != nil {
|
|
if err != nil {
|
|
fmt.Println("parseBody Error: ", err.Error())
|
|
fmt.Println("parseBody Error: ", err.Error())
|
|
|
|
+ return "", err
|
|
}
|
|
}
|
|
contentLength := h.GetRequest().ContentLength
|
|
contentLength := h.GetRequest().ContentLength
|
|
if contentLength > S2_MIN_LENGTH {
|
|
if contentLength > S2_MIN_LENGTH {
|
|
h.Param("sign_flag", "1")
|
|
h.Param("sign_flag", "1")
|
|
s2 = cutS2(s2)
|
|
s2 = cutS2(s2)
|
|
} else {
|
|
} else {
|
|
- s2, _ = sortS2(s2)
|
|
|
|
|
|
+ s2, err = sortS2(s2)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return "", err
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -69,10 +76,13 @@ func (d *DcApiClient)CreateSign(h *httplib.HTTPRequest) string {
|
|
//fmt.Println("s2", s2)
|
|
//fmt.Println("s2", s2)
|
|
//fmt.Println("s3", s3)
|
|
//fmt.Println("s3", s3)
|
|
//fmt.Println("md5", md5Str)
|
|
//fmt.Println("md5", md5Str)
|
|
- return md5Str
|
|
|
|
|
|
+ return md5Str, nil
|
|
}
|
|
}
|
|
|
|
|
|
func cutS2(s2 string) string {
|
|
func cutS2(s2 string) string {
|
|
|
|
+ if s2 == "" {
|
|
|
|
+ return ""
|
|
|
|
+ }
|
|
s2l := len(s2)
|
|
s2l := len(s2)
|
|
//if s2l <= S2_MIN_LENGTH {
|
|
//if s2l <= S2_MIN_LENGTH {
|
|
// return s2
|
|
// return s2
|
|
@@ -81,6 +91,9 @@ func cutS2(s2 string) string {
|
|
}
|
|
}
|
|
|
|
|
|
func sortS2(s2 string) (string, error) {
|
|
func sortS2(s2 string) (string, error) {
|
|
|
|
+ if s2 == "" {
|
|
|
|
+ return "", nil
|
|
|
|
+ }
|
|
var mi map[string]interface{}
|
|
var mi map[string]interface{}
|
|
if err := json.Unmarshal([]byte(s2), &mi); err != nil {
|
|
if err := json.Unmarshal([]byte(s2), &mi); err != nil {
|
|
return "", err
|
|
return "", err
|
|
@@ -101,7 +114,10 @@ func parseBody(r *httplib.HTTPRequest) (s2 string, err error) {
|
|
}
|
|
}
|
|
body := r.GetRequest().Body
|
|
body := r.GetRequest().Body
|
|
|
|
|
|
- cnt, _ := ioutil.ReadAll(body)
|
|
|
|
|
|
+ cnt, err := ioutil.ReadAll(body)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return "", err
|
|
|
|
+ }
|
|
r.GetRequest().Body = ioutil.NopCloser(bytes.NewReader(cnt))
|
|
r.GetRequest().Body = ioutil.NopCloser(bytes.NewReader(cnt))
|
|
|
|
|
|
return string(cnt), nil
|
|
return string(cnt), nil
|