- don't check sign when there isn't sign data in mtwm callback.

This commit is contained in:
gazebo
2019-01-08 17:40:35 +08:00
parent bb9644abe3
commit c0735d9d6c
2 changed files with 20 additions and 15 deletions

View File

@@ -5,6 +5,7 @@ import (
"net/url" "net/url"
"strings" "strings"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
) )
@@ -51,19 +52,23 @@ func Err2CallbackResponse(err error, data string) *CallbackResponse {
func (a *API) GetCallbackMsg(request *http.Request) (msg *CallbackMsg, callbackResponse *CallbackResponse) { func (a *API) GetCallbackMsg(request *http.Request) (msg *CallbackMsg, callbackResponse *CallbackResponse) {
data := utils.URLValues2Map(request.PostForm) data := utils.URLValues2Map(request.PostForm)
fullURL := strings.TrimRight(a.callbackURL+request.URL.Path, "/") if dataSign, ok := data[signKey]; ok {
sign := a.signParams(fullURL+"?", data) fullURL := strings.TrimRight(a.callbackURL+request.URL.Path, "/")
if sign != data[signKey] { sign := a.signParams(fullURL+"?", data)
return nil, SignatureIsNotOk if sign != dataSign.(string) {
baseapi.SugarLogger.Debugf("mtwm GetCallbackMsg my sign:%v, data sign:%v", sign, dataSign.(string))
return nil, SignatureIsNotOk
}
cmd := strings.Trim(request.URL.EscapedPath(), "/")
cmd = cmd[strings.LastIndex(cmd, "/")+1:]
msg = &CallbackMsg{
Cmd: cmd,
}
msg.Data = make(url.Values)
for k, v := range data {
msg.Data.Set(k, v.(string))
}
return msg, nil
} }
cmd := strings.Trim(request.URL.EscapedPath(), "/") return nil, SuccessResponse
cmd = cmd[strings.LastIndex(cmd, "/")+1:]
msg = &CallbackMsg{
Cmd: cmd,
}
msg.Data = make(url.Values)
for k, v := range data {
msg.Data.Set(k, v.(string))
}
return msg, nil
} }

View File

@@ -106,7 +106,7 @@ func MustInterface2Float64(data interface{}) float64 {
} }
func Interface2FloatWithDefault(data interface{}, defValue float64) (retVal float64) { func Interface2FloatWithDefault(data interface{}, defValue float64) (retVal float64) {
if data == nil { if _, ok := data.(json.Number); !ok {
return defValue return defValue
} }
return MustInterface2Float64(data) return MustInterface2Float64(data)