Commit 1c68bbbf authored by hujiebin's avatar hujiebin

Feature/encrypt

parent 54d5ceeb
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"git.hilo.cn/hilo-common/mycontext" "git.hilo.cn/hilo-common/mycontext"
"git.hilo.cn/hilo-common/mylogrus" "git.hilo.cn/hilo-common/mylogrus"
"git.hilo.cn/hilo-common/utils"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"hilo-group/myerr" "hilo-group/myerr"
"net/http" "net/http"
...@@ -16,6 +17,7 @@ type Response struct { ...@@ -16,6 +17,7 @@ type Response struct {
MessageData interface{} `json:"messageData"` // 消息详情 MessageData interface{} `json:"messageData"` // 消息详情
OperationMessage interface{} `json:"operationMessage"` // 操作消息 OperationMessage interface{} `json:"operationMessage"` // 操作消息
Data interface{} `json:"data"` // 数据 Data interface{} `json:"data"` // 数据
Edata interface{} `json:"edata"` // 数据
} }
/** /**
...@@ -30,7 +32,12 @@ func ResponseOk(c *gin.Context, data interface{}) { ...@@ -30,7 +32,12 @@ func ResponseOk(c *gin.Context, data interface{}) {
Code: myerr.GetSuccessCode(), Code: myerr.GetSuccessCode(),
Message: myerr.GetSuccessMsg(), Message: myerr.GetSuccessMsg(),
OperationMessage: myerr.GetSuccessMsg(), OperationMessage: myerr.GetSuccessMsg(),
Data: data, }
if _, ok := c.Get(mycontext.InnerEncrypt); ok {
//response.Edata = utils.EncryptionData(data, []byte("484194d4d0f968a7"))
response.Edata = utils.EncryptionData(data, []byte("hilo!@#$%^&*()_+"))
} else {
response.Data = data
} }
printResponseBody(c, &response) printResponseBody(c, &response)
...@@ -116,15 +123,21 @@ type Page struct { ...@@ -116,15 +123,21 @@ type Page struct {
func ResponsePageOk(c *gin.Context, data interface{}, total uint, index int) { func ResponsePageOk(c *gin.Context, data interface{}, total uint, index int) {
// always return http.StatusOK // always return http.StatusOK
pageData := Page{
Total: total,
Index: index,
Data: data,
}
response := Response{ response := Response{
Code: myerr.GetSuccessCode(), Code: myerr.GetSuccessCode(),
Message: myerr.GetSuccessMsg(), Message: myerr.GetSuccessMsg(),
OperationMessage: myerr.GetSuccessMsg(), OperationMessage: myerr.GetSuccessMsg(),
Data: Page{ }
Total: total, if _, ok := c.Get(mycontext.InnerEncrypt); ok {
Index: index, //response.Edata = utils.EncryptionData(data, []byte("484194d4d0f968a7"))
Data: data, response.Edata = utils.EncryptionData(pageData, []byte("hilo!@#$%^&*()_+"))
}, } else {
response.Data = pageData
} }
printResponseBody(c, &response) printResponseBody(c, &response)
...@@ -149,15 +162,21 @@ func ResponsePageBaseOk(c *gin.Context, data interface{}, nextPageIndex int, has ...@@ -149,15 +162,21 @@ func ResponsePageBaseOk(c *gin.Context, data interface{}, nextPageIndex int, has
if data == nil { if data == nil {
data = make([]interface{}, 0) data = make([]interface{}, 0)
} }
pageData := PageRespBase{
NextPageIndex: nextPageIndex,
HasNextPage: hasNextPage,
Data: data,
}
response := Response{ response := Response{
Code: myerr.GetSuccessCode(), Code: myerr.GetSuccessCode(),
Message: myerr.GetSuccessMsg(), Message: myerr.GetSuccessMsg(),
OperationMessage: myerr.GetSuccessMsg(), OperationMessage: myerr.GetSuccessMsg(),
Data: PageRespBase{ }
NextPageIndex: nextPageIndex, if _, ok := c.Get(mycontext.InnerEncrypt); ok {
HasNextPage: hasNextPage, //response.Edata = utils.EncryptionData(data, []byte("484194d4d0f968a7"))
Data: data, response.Edata = utils.EncryptionData(pageData, []byte("hilo!@#$%^&*()_+"))
}, } else {
response.Data = pageData
} }
c.JSON(http.StatusOK, response) c.JSON(http.StatusOK, response)
} }
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"git.hilo.cn/hilo-common/mycontext" "git.hilo.cn/hilo-common/mycontext"
"git.hilo.cn/hilo-common/mylogrus" "git.hilo.cn/hilo-common/mylogrus"
"git.hilo.cn/hilo-common/resource/config" "git.hilo.cn/hilo-common/resource/config"
"git.hilo.cn/hilo-common/utils"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"hilo-group/myerr/bizerr" "hilo-group/myerr/bizerr"
"hilo-group/req" "hilo-group/req"
...@@ -133,3 +134,15 @@ func LoggerHandle(c *gin.Context) { ...@@ -133,3 +134,15 @@ func LoggerHandle(c *gin.Context) {
latency := end.Sub(start) latency := end.Sub(start)
mycontext.CreateMyContext(c.Keys).Log.Infof("request end fullPath:%v,url:%v, method: %v, traceId:%v, latency:%v userId:%v", c.FullPath(), reqUri, method, traceId, latency, userId) mycontext.CreateMyContext(c.Keys).Log.Infof("request end fullPath:%v,url:%v, method: %v, traceId:%v, latency:%v userId:%v", c.FullPath(), reqUri, method, traceId, latency, userId)
} }
// 加密Handle
func EncryptHandle(c *gin.Context) {
header := c.Request.Header
appVersion := header.Get("Appversion")
if len(appVersion) > 0 {
if high, _ := utils.CompareVersion(appVersion, "> 3.9.0"); high {
c.Set(mycontext.InnerEncrypt, true)
}
}
c.Next()
}
...@@ -31,8 +31,8 @@ func InitRouter() *gin.Engine { ...@@ -31,8 +31,8 @@ func InitRouter() *gin.Engine {
// //
imGroup.POST("/group", wrapper(group_r.CreateGroup)) imGroup.POST("/group", wrapper(group_r.CreateGroup))
imGroup.DELETE("/group/:groupId", wrapper(group_r.DestroyGroup)) imGroup.DELETE("/group/:groupId", wrapper(group_r.DestroyGroup))
imGroup.GET("/group/:code", wrapper(group_r.GetGroupInfo)) imGroup.GET("/group/:code", EncryptHandle, wrapper(group_r.GetGroupInfo))
imGroup.GET("/detail/:groupId", wrapper(group_r.GetGroupDetail)) imGroup.GET("/detail/:groupId", EncryptHandle, wrapper(group_r.GetGroupDetail))
imGroup.PUT("/group/:groupId", wrapper(group_r.ModifyGroupInfo)) imGroup.PUT("/group/:groupId", wrapper(group_r.ModifyGroupInfo))
imGroup.GET("/search/:code", wrapper(group_r.SearchGroup)) imGroup.GET("/search/:code", wrapper(group_r.SearchGroup))
imGroup.DELETE("/member/:groupId", wrapper(group_r.LeaveGroup)) imGroup.DELETE("/member/:groupId", wrapper(group_r.LeaveGroup))
...@@ -48,7 +48,7 @@ func InitRouter() *gin.Engine { ...@@ -48,7 +48,7 @@ func InitRouter() *gin.Engine {
imGroup.GET("/ownGroup", wrapper(group_r.GetOwnGroup)) imGroup.GET("/ownGroup", wrapper(group_r.GetOwnGroup))
imGroup.GET("/theirGroup/:userExternalId", wrapper(group_r.GetTheirGroups)) imGroup.GET("/theirGroup/:userExternalId", wrapper(group_r.GetTheirGroups))
imGroup.PUT("/pluginReady/:groupId", wrapper(group_r.PluginReady)) imGroup.PUT("/pluginReady/:groupId", wrapper(group_r.PluginReady))
imGroup.GET("/roomInfo/:groupId", wrapper(group_r.GetRoomInfo)) imGroup.GET("/roomInfo/:groupId", EncryptHandle, wrapper(group_r.GetRoomInfo))
// //
imGroup.GET("/password/:groupId", wrapper(group_r.GetGroupPassword)) imGroup.GET("/password/:groupId", wrapper(group_r.GetGroupPassword))
imGroup.GET("/role/:groupId", wrapper(group_r.GetGroupRole)) imGroup.GET("/role/:groupId", wrapper(group_r.GetGroupRole))
......
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