Commit 78b7028e authored by 张宇迪's avatar 张宇迪

服务调用(未实计次入库)

parent 8e6b6c9d
...@@ -17,7 +17,7 @@ var Resp *http.Response ...@@ -17,7 +17,7 @@ var Resp *http.Response
func Proxy(c *gin.Context) { func Proxy(c *gin.Context) {
appId := c.Param("appId") appId := c.Param("appId")
//获取服务相关信息
proxyData, err := service.GetRealPath(appId) proxyData, err := service.GetRealPath(appId)
if err != nil { if err != nil {
...@@ -27,14 +27,12 @@ func Proxy(c *gin.Context) { ...@@ -27,14 +27,12 @@ func Proxy(c *gin.Context) {
f, _ := forward.New(forward.PassHostHeader(true), forward.ResponseModifier(func(resp *http.Response) error { f, _ := forward.New(forward.PassHostHeader(true), forward.ResponseModifier(func(resp *http.Response) error {
Resp = resp Resp = resp
//判断是否可以调用
callflag, sensitiveflag, err := service.QueryCallsCount(appId, proxyData) callflag, sensitiveflag, err := service.QueryCallsCount(appId, proxyData)
if err != nil { if err != nil {
Return(err.Error()) Return(err.Error())
return nil return nil
} }
if callflag == false { if callflag == false {
Return(`调用达到当日限定次数`) Return(`调用达到当日限定次数`)
return nil return nil
...@@ -45,11 +43,11 @@ func Proxy(c *gin.Context) { ...@@ -45,11 +43,11 @@ func Proxy(c *gin.Context) {
var res interface{} var res interface{}
res = respbody res = respbody
//是否需要过滤字段
if proxyData.ResFields != "" { if proxyData.ResFields != "" {
res = service.FiledFilter(proxyData, respbody) res = service.FiledFilter(proxyData, respbody)
} }
//是否需要屏蔽敏感字段
if sensitiveflag == false { if sensitiveflag == false {
res = service.SensitiveFilter(proxyData, res) res = service.SensitiveFilter(proxyData, res)
} }
...@@ -59,11 +57,8 @@ func Proxy(c *gin.Context) { ...@@ -59,11 +57,8 @@ func Proxy(c *gin.Context) {
})) }))
c.Request.URL = testutils.ParseURI(proxyData.RealUrl) c.Request.URL = testutils.ParseURI(proxyData.RealUrl)
c.Request.RequestURI = proxyData.RealUrl c.Request.RequestURI = proxyData.RealUrl
c.Request.Host = getHost(proxyData.RealUrl) c.Request.Host = getHost(proxyData.RealUrl)
f.ServeHTTP(c.Writer, c.Request) f.ServeHTTP(c.Writer, c.Request)
} }
......
...@@ -176,8 +176,18 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter ...@@ -176,8 +176,18 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter
if k == k1 { if k == k1 {
//flag = true //flag = true
switch v.(type) { switch v.(type) {
case float64:
returnData.(map[string]interface{})[k] = `xxx`
case float32:
returnData.(map[string]interface{})[k] = `xxx`
case int:
returnData.(map[string]interface{})[k] = `xxx`
case bool:
returnData.(map[string]interface{})[k] = `xxx`
case string: case string:
returnData.(map[string]interface{})[k] = `xxx` returnData.(map[string]interface{})[k] = `xxx`
default:
} }
FilterSensituveField(v, v1) FilterSensituveField(v, v1)
} }
...@@ -197,6 +207,15 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter ...@@ -197,6 +207,15 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter
switch v.(map[string]interface{})[k1].(type) { switch v.(map[string]interface{})[k1].(type) {
case string: case string:
v.(map[string]interface{})[k1] = `xxx` v.(map[string]interface{})[k1] = `xxx`
case float64:
v.(map[string]interface{})[k1] = `xxx`
case float32:
v.(map[string]interface{})[k1] = `xxx`
case int:
v.(map[string]interface{})[k1] = `xxx`
case bool:
v.(map[string]interface{})[k1] = `xxx`
default:
} }
FilterSensituveField(v1, v2) FilterSensituveField(v1, v2)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment