Files
EdgeNode/internal/waf/info_arg_test.go
GoEdgeLab b772085ef2 优化WAF
* 信息加密使用struct代替map,以缩短加密后内容长度
* 拦截动作、人机识别动作增加是否尝试全局封禁选项
* JSCookie识别动作增加默认设置选项
* 人机识别中传入info参数异常时,尝试跳转到来源地址,避免直接提示invalid request
2024-04-07 14:31:22 +08:00

45 lines
978 B
Go

// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
package waf_test
import (
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/types"
"testing"
"time"
)
func TestInfoArg_Encode(t *testing.T) {
var info = &waf.InfoArg{
ActionId: 1,
Timestamp: time.Now().Unix(),
URL: "https://example.com/hello",
PolicyId: 2,
GroupId: 3,
SetId: 4,
UseLocalFirewall: true,
Scope: "global",
}
encodedString, err := info.Encode()
if err != nil {
t.Fatal(err)
}
t.Log("["+types.String(len(encodedString))+"]", encodedString)
{
urlEncodedString, encodeErr := info.URLEncoded()
if encodeErr != nil {
t.Fatal(encodeErr)
}
t.Log("["+types.String(len(urlEncodedString))+"]", urlEncodedString)
}
var info2 = &waf.InfoArg{}
err = info2.Decode(encodedString)
if err != nil {
t.Fatal(err)
}
t.Logf("%+v", info2)
}