Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package securityUtil
|
||||
|
||||
import (
|
||||
"crypto/hmac"
|
||||
"crypto/sha1"
|
||||
"crypto/sha256"
|
||||
"crypto/sha512"
|
||||
"encoding/base64"
|
||||
)
|
||||
|
||||
// Hmac-SHA1编码
|
||||
// source:编码原数据
|
||||
// key:编码密钥
|
||||
// 返回值:编码结果
|
||||
func HmacSha1(source, key string) (result []byte, err error) {
|
||||
mac := hmac.New(sha1.New, []byte(key))
|
||||
if _, err = mac.Write([]byte(source)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return mac.Sum(nil), nil
|
||||
}
|
||||
|
||||
// Hmac-SHA1 Base64编码
|
||||
// source:编码原数据
|
||||
// key:编码密钥
|
||||
// 返回值:编码结果
|
||||
func Base64HmacSha1(source, key string) (result string, err error) {
|
||||
mac := hmac.New(sha1.New, []byte(key))
|
||||
if _, err = mac.Write([]byte(source)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
bytes := mac.Sum(nil)
|
||||
result = base64.StdEncoding.EncodeToString(bytes)
|
||||
return
|
||||
}
|
||||
|
||||
// Hmac-SHA256编码
|
||||
// source:编码原数据
|
||||
// key:编码密钥
|
||||
// 返回值:编码结果
|
||||
func HmacSha256(source, key string) (result []byte, err error) {
|
||||
mac := hmac.New(sha256.New, []byte(key))
|
||||
if _, err = mac.Write([]byte(source)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return mac.Sum(nil), nil
|
||||
}
|
||||
|
||||
// Hmac-SHA512编码
|
||||
// source:编码原数据
|
||||
// key:编码密钥
|
||||
// 返回值:编码结果
|
||||
func HmacSha512(source, key string) (result []byte, err error) {
|
||||
mac := hmac.New(sha512.New, []byte(key))
|
||||
if _, err = mac.Write([]byte(source)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return mac.Sum(nil), nil
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package checkMgr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
. "Framework/startMgr"
|
||||
"goutil/logUtil"
|
||||
)
|
||||
|
||||
var (
|
||||
funcMap = make(map[string]*FuncItem)
|
||||
mutex sync.Mutex
|
||||
operateName = "Check"
|
||||
)
|
||||
|
||||
// 注册方法(如果名称重复会panic)
|
||||
// name:方法名称(唯一标识)
|
||||
// moduleType:模块类型
|
||||
// definition:方法定义
|
||||
func Register(name string, moduleType ModuleType, definition func() error) {
|
||||
mutex.Lock()
|
||||
defer mutex.Unlock()
|
||||
|
||||
if _, exists := funcMap[name]; exists {
|
||||
panic(fmt.Sprintf("%s已经存在,请重新命名", name))
|
||||
}
|
||||
|
||||
funcMap[name] = NewFuncItem(name, moduleType, definition)
|
||||
}
|
||||
|
||||
// 调用所有方法
|
||||
// 返回值:
|
||||
// 错误列表
|
||||
func CallAll() (errList []error) {
|
||||
mutex.Lock()
|
||||
defer mutex.Unlock()
|
||||
|
||||
startTime := time.Now()
|
||||
defer func() {
|
||||
logUtil.InfoLog("%s 执行总时间:%s", operateName, time.Since(startTime))
|
||||
}()
|
||||
|
||||
for _, item := range funcMap {
|
||||
// 调用方法
|
||||
if err := item.Call2(operateName); err != nil {
|
||||
errList = append(errList, err)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// 按照模块类型进行调用
|
||||
// moduleType:模块类型
|
||||
// 返回值:
|
||||
// errList:错误列表
|
||||
func CallType(moduleType ModuleType) (errList []error) {
|
||||
mutex.Lock()
|
||||
defer mutex.Unlock()
|
||||
|
||||
startTime := time.Now()
|
||||
defer func() {
|
||||
logUtil.InfoLog("%v %s 执行总时间:%s", moduleType, operateName, time.Since(startTime))
|
||||
}()
|
||||
|
||||
for _, item := range funcMap {
|
||||
if item.ModuleType != moduleType {
|
||||
continue
|
||||
}
|
||||
|
||||
// 调用方法
|
||||
if err := item.Call2(operateName); err != nil {
|
||||
errList = append(errList, err)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package httpSender
|
||||
|
||||
// 请求
|
||||
type Requester interface {
|
||||
GetMethod() string
|
||||
GetUrl() string
|
||||
GetData() []byte
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package managecenterModel
|
||||
|
||||
type MCDataType int
|
||||
|
||||
const (
|
||||
// 服务器
|
||||
ServerData MCDataType = 1
|
||||
|
||||
// 服务器组
|
||||
ServerGroupData MCDataType = 2
|
||||
|
||||
// 合作商
|
||||
PartnerData MCDataType = 3
|
||||
|
||||
// 资源
|
||||
ResourceVersionData MCDataType = 4
|
||||
|
||||
// 白名单
|
||||
UserWhiteListData MCDataType = 5
|
||||
|
||||
// 公告
|
||||
GameNoticeData MCDataType = 6
|
||||
|
||||
// 大区
|
||||
AreaData MCDataType = 7
|
||||
)
|
||||
@@ -0,0 +1,96 @@
|
||||
package bytesSendUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"goutil/webUtil"
|
||||
)
|
||||
|
||||
// 实现 EnsureSender和sender接口
|
||||
type httpSender struct {
|
||||
// 需要实现的接口
|
||||
EnsureSender
|
||||
|
||||
// 包含sender接口部分实现
|
||||
*baseSender
|
||||
|
||||
// 数据目录
|
||||
dataFolder string
|
||||
|
||||
// 发送地址
|
||||
url string
|
||||
|
||||
// 用于sendLoop和resendLoop发送退出信号
|
||||
closeSignal chan struct{}
|
||||
}
|
||||
|
||||
// 创建一个http数据发送器
|
||||
// 参数:
|
||||
//
|
||||
// _dataFolder 数据存放目录
|
||||
// _url 发送地址
|
||||
func NewHTTPSender(_dataFolder, _url string) (EnsureSender, error) {
|
||||
this := &httpSender{
|
||||
dataFolder: _dataFolder,
|
||||
url: _url,
|
||||
baseSender: newBaseSender(),
|
||||
closeSignal: make(chan struct{}),
|
||||
}
|
||||
|
||||
// 新开协程发送数据
|
||||
go sendLoop(this, this.closeSignal)
|
||||
|
||||
// 定时重发
|
||||
go resendLoop(this, _dataFolder, this.closeSignal)
|
||||
|
||||
return this, nil
|
||||
}
|
||||
|
||||
// EnsureSender接口
|
||||
// Write:写入数据
|
||||
func (this *httpSender) Write(data []byte) error {
|
||||
item := newHTTPData(data)
|
||||
|
||||
this.waitingDataChan <- item
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// EnsureSender接口
|
||||
// Close:关闭
|
||||
func (this *httpSender) Close() error {
|
||||
close(this.done)
|
||||
|
||||
// 等待sendLoop和resendLoop退出
|
||||
<-this.closeSignal
|
||||
<-this.closeSignal
|
||||
|
||||
// 保存数据
|
||||
_, e1 := saveData(this.Cache(), this.dataFolder)
|
||||
_, e2 := saveData(this.Data(), this.dataFolder)
|
||||
|
||||
if e2 != nil {
|
||||
if e1 != nil {
|
||||
return fmt.Errorf("%s %s", e1, e2)
|
||||
}
|
||||
return e2
|
||||
} else {
|
||||
return e1
|
||||
}
|
||||
}
|
||||
|
||||
// sender接口
|
||||
// Send:发送数据
|
||||
func (this *httpSender) Send(item dataItem) error {
|
||||
statusCode, _, err := webUtil.PostByteData2(this.url, item.Bytes(), nil, nil)
|
||||
if err != nil || statusCode != 200 {
|
||||
if err == nil {
|
||||
err = fmt.Errorf("StatusCode is not 200")
|
||||
}
|
||||
|
||||
// 发送失败时发送次数+1
|
||||
item.SetCount(item.Count() + 1)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user