Files
EdgeNode/internal/waf/requests/request.go
2024-04-15 08:42:33 +08:00

53 lines
1.0 KiB
Go

package requests
import (
"net/http"
)
type Request interface {
// WAFRaw 原始请求
WAFRaw() *http.Request
// WAFRemoteIP 客户端IP
WAFRemoteIP() string
// WAFGetCacheBody 获取缓存中的Body
WAFGetCacheBody() []byte
// WAFSetCacheBody 设置Body
WAFSetCacheBody(body []byte)
// WAFReadBody 读取Body
WAFReadBody(max int64) (data []byte, err error)
// WAFRestoreBody 恢复Body
WAFRestoreBody(data []byte)
// WAFServerId 服务ID
WAFServerId() int64
// WAFClose 关闭当前请求所在的连接
WAFClose()
// WAFOnAction 动作回调
WAFOnAction(action any) (goNext bool)
// WAFFingerprint 读取连接指纹
WAFFingerprint() []byte
// WAFMaxRequestSize 可以检查的最大内容尺寸
WAFMaxRequestSize() int64
// Format 格式化变量
Format(varString string) string
// ProcessResponseHeaders 处理响应Header
ProcessResponseHeaders(headers http.Header, status int)
// DisableAccessLog 在当前请求中不使用访问日志
DisableAccessLog()
// DisableStat 在当前请求中停用统计
DisableStat()
}