Files
EdgeNode/internal/waf/checkpoints/checkpoint.go
GoEdgeLab c19be78e0d v1.4.1
2024-07-27 15:42:50 +08:00

61 lines
916 B
Go

package checkpoints
import (
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type Checkpoint struct {
priority int
}
func (this *Checkpoint) Init() {
}
func (this *Checkpoint) IsRequest() bool {
return true
}
func (this *Checkpoint) IsComposed() bool {
return false
}
func (this *Checkpoint) ParamOptions() *ParamOptions {
return nil
}
func (this *Checkpoint) Options() []OptionInterface {
return nil
}
func (this *Checkpoint) Start() {
}
func (this *Checkpoint) Stop() {
}
func (this *Checkpoint) SetPriority(priority int) {
this.priority = priority
}
func (this *Checkpoint) Priority() int {
return this.priority
}
func (this *Checkpoint) RequestBodyIsEmpty(req requests.Request) bool {
if req.WAFRaw().ContentLength == 0 {
return true
}
var method = req.WAFRaw().Method
if method == http.MethodHead || method == http.MethodGet {
return true
}
return false
}