waf skip body when protocol is grpc, websocket or sse (#943)

This commit is contained in:
rinfx
2024-05-15 20:34:47 +08:00
committed by GitHub
parent 8736188e6a
commit 42c9c3d824
3 changed files with 49 additions and 2 deletions

View File

@@ -138,3 +138,34 @@ func logError(error ctypes.MatchedRule) {
proxywasm.LogDebug(msg)
}
}
func isWebSocketRequest() bool {
if value, err := proxywasm.GetHttpRequestHeader("Upgrade"); err == nil {
if value == "websocket" {
return true
}
}
return false
}
func isSSERequest() bool {
if value, err := proxywasm.GetHttpRequestHeader("Accept"); err == nil {
if value == "text/event-stream" {
return true
}
}
return false
}
func isGrpcRequest() bool {
if value, err := proxywasm.GetHttpRequestHeader("Content-Type"); err == nil {
if value == "application/grpc" {
return true
}
}
return false
}
func ignoreBody() bool {
return isWebSocketRequest() || isSSERequest() || isGrpcRequest()
}