Files
SamWaf/waftask/taskuploadclient.go
T
2024-07-08 16:41:26 +08:00

94 lines
2.3 KiB
Go

package waftask
import (
"SamWaf/customtype"
"SamWaf/global"
"SamWaf/model/request"
"SamWaf/service/waf_service"
"SamWaf/utils/zlog"
"SamWaf/wafsec"
"encoding/json"
"io/ioutil"
"net/http"
"runtime"
"strconv"
"strings"
"time"
)
var (
wafTokenInfoService = waf_service.WafTokenInfoServiceApp
)
func TaskClientToCenter() {
zlog.Debug("TaskClientToCenter")
if global.GWAF_CENTER_ENABLE == "false" {
return
}
tokenInfo := wafTokenInfoService.GetOneAvailableInfo()
if tokenInfo.Id == "" {
return
}
// 准备要发送的数据
data := request.CenterClientUpdateReq{
ClientServerName: global.GWAF_CUSTOM_SERVER_NAME,
ClientUserCode: global.GWAF_USER_CODE,
ClientTenantId: global.GWAF_TENANT_ID,
ClientToken: tokenInfo.AccessToken,
ClientSsl: "false",
ClientPort: strconv.Itoa(global.GWAF_LOCAL_SERVER_PORT),
ClientNewVersion: global.GWAF_RELEASE_VERSION,
ClientNewVersionDesc: global.GWAF_RELEASE_VERSION_NAME,
ClientSystemType: runtime.GOOS,
LastVisitTime: customtype.JsonTime(time.Now()),
}
// 将数据编码为JSON格式
jsonData, err := json.Marshal(data)
if err != nil {
return
}
//加密
encryptStr, _ := wafsec.AesEncrypt(jsonData, global.GWAF_COMMUNICATION_KEY)
encryptContent := encryptStr
/*zlog.Debug("注册加密前" + string(jsonData))
zlog.Debug("注册加后" + encryptContent)*/
// 创建请求URL
url := global.GWAF_CENTER_URL + "/samwaf/center/update"
// 创建一个HTTP请求
req, err := http.NewRequest("POST", url, strings.NewReader(encryptContent))
if err != nil {
zlog.Debug("Error creating request:", err)
return
}
// 设置请求的Content-Type为application/json
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
// 设置请求的Token
//req.Header.Set("Authorization", "Bearer YOUR_TOKEN_HERE")
// 发送请求
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
zlog.Debug("Error sending request:", err)
return
}
defer resp.Body.Close()
// 读取响应
_, err = ioutil.ReadAll(resp.Body)
if err != nil {
zlog.Debug("Error reading response body:", err)
return
}
// 打印响应状态和响应体
/*zlog.Debug("response Status:", resp.Status)
zlog.Debug("response Body:", string(body))*/
}