更新waf插件,丰富规则命中时日志内容 (#537)

This commit is contained in:
rinfx
2023-09-21 15:42:18 +08:00
committed by GitHub
parent b142f51776
commit 2393af5c85
4 changed files with 76 additions and 22 deletions

View File

@@ -0,0 +1,47 @@
package wasmplugin
import (
"io"
"github.com/corazawaf/coraza/v3/debuglog"
"github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm"
)
type logger struct {
debuglog.Logger
}
var _ debuglog.Logger = logger{}
var logPrinterFactory = func(io.Writer) debuglog.Printer {
return func(lvl debuglog.Level, message, fields string) {
switch lvl {
case debuglog.LevelTrace:
proxywasm.LogTracef("%s %s", message, fields)
case debuglog.LevelDebug:
proxywasm.LogDebugf("%s %s", message, fields)
case debuglog.LevelInfo:
proxywasm.LogInfof("%s %s", message, fields)
case debuglog.LevelWarn:
proxywasm.LogWarnf("%s %s", message, fields)
case debuglog.LevelError:
proxywasm.LogErrorf("%s %s", message, fields)
default:
}
}
}
func DefaultLogger() debuglog.Logger {
return logger{
debuglog.DefaultWithPrinterFactory(logPrinterFactory),
}
}
func (l logger) WithLevel(lvl debuglog.Level) debuglog.Logger {
return logger{l.Logger.WithLevel(lvl)}
}
func (l logger) WithOutput(_ io.Writer) debuglog.Logger {
proxywasm.LogWarn("Ignoring SecDebugLog directive, debug logs are always routed to proxy logs")
return l
}