Disable reroute in some plugins (#2639)

This commit is contained in:
澄潭
2025-07-22 14:44:26 +08:00
committed by GitHub
parent 34b5a6feea
commit 4d32cc9468
24 changed files with 28 additions and 15 deletions

View File

@@ -58,6 +58,7 @@ func parseConfig(gjson gjson.Result, c *PluginConfig, log log.Log) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log log.Log) types.Action {
ctx.DisableReroute()
return types.ActionContinue
}

View File

@@ -58,6 +58,7 @@ func parseConfig(json gjson.Result, c *config.PluginConfig, log log.Log) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, c config.PluginConfig, log log.Log) types.Action {
ctx.DisableReroute()
skipCache, _ := proxywasm.GetHttpRequestHeader(SKIP_CACHE_HEADER)
if skipCache == "on" {
ctx.SetContext(SKIP_CACHE_HEADER, struct{}{})

View File

@@ -170,6 +170,7 @@ func parseConfig(json gjson.Result, c *PluginConfig, log log.Log) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log log.Log) types.Action {
ctx.DisableReroute()
contentType, _ := proxywasm.GetHttpRequestHeader("content-type")
if !strings.Contains(contentType, "application/json") {
log.Warnf("content is not json, can't process:%s", contentType)

View File

@@ -57,6 +57,7 @@ func parseConfig(json gjson.Result, config *Config) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config Config) types.Action {
ctx.DisableReroute()
contentType, _ := proxywasm.GetHttpRequestHeader("content-type")
if contentType == "" {
return types.ActionContinue

View File

@@ -198,6 +198,7 @@ func parseConfig(json gjson.Result, c *PluginConfig, log log.Log) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log log.Log) types.Action {
ctx.DisableReroute()
log.Debug("start onHttpRequestHeaders function.")
log.Debug("end onHttpRequestHeaders function.")

View File

@@ -449,6 +449,7 @@ func recursiveRefineJson(ctx wrapper.HttpContext, config PluginConfig, log log.L
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log log.Log) types.Action {
ctx.DisableReroute()
if config.rejectStruct.RejectCode != HTTP_STATUS_OK {
sendResponse(ctx, config, log, nil)
return types.ActionPause

View File

@@ -64,6 +64,7 @@ func parseConfig(json gjson.Result, config *Config) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config Config) types.Action {
ctx.DisableReroute()
return config.lb.HandleHttpRequestHeaders(ctx)
}

View File

@@ -39,6 +39,7 @@ func parseConfig(jsonConfig gjson.Result, config *AIPromptDecoratorConfig, log l
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config AIPromptDecoratorConfig, log log.Log) types.Action {
ctx.DisableReroute()
proxywasm.RemoveHttpRequestHeader("content-length")
return types.ActionContinue
}

View File

@@ -36,6 +36,7 @@ func parseConfig(json gjson.Result, config *AIPromptTemplateConfig, log log.Log)
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config AIPromptTemplateConfig, log log.Log) types.Action {
ctx.DisableReroute()
templateEnable, _ := proxywasm.GetHttpRequestHeader("template-enable")
if templateEnable == "false" {
ctx.DontReadRequestBody()

View File

@@ -16,7 +16,7 @@ import (
"github.com/higress-group/wasm-go/pkg/wrapper"
"github.com/tidwall/gjson"
"github.com/tidwall/resp"
"github.com/alibaba/higress/plugins/wasm-go/extensions/ai-quota/util"
)
@@ -131,6 +131,7 @@ func parseConfig(json gjson.Result, config *QuotaConfig) error {
}
func onHttpRequestHeaders(context wrapper.HttpContext, config QuotaConfig) types.Action {
context.DisableReroute()
log.Debugf("onHttpRequestHeaders()")
// get tokens
consumer, err := proxywasm.GetHttpRequestHeader("x-mse-consumer")

View File

@@ -95,6 +95,7 @@ func parseConfig(json gjson.Result, config *AIRagConfig, log log.Log) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config AIRagConfig, log log.Log) types.Action {
ctx.DisableReroute()
proxywasm.RemoveHttpRequestHeader("content-length")
return types.ActionContinue
}

View File

@@ -278,6 +278,7 @@ func parseConfig(json gjson.Result, config *Config) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config Config) types.Action {
ctx.DisableReroute()
contentType, _ := proxywasm.GetHttpRequestHeader("content-type")
// The request does not have a body.
if contentType == "" {

View File

@@ -254,6 +254,7 @@ func generateRandomID() string {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config AISecurityConfig, log log.Log) types.Action {
ctx.DisableReroute()
if !config.checkRequest {
log.Debugf("request checking is disabled")
ctx.DontReadRequestBody()

View File

@@ -175,6 +175,7 @@ func parseConfig(configJson gjson.Result, config *AIStatisticsConfig) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config AIStatisticsConfig) types.Action {
ctx.DisableReroute()
route, _ := getRouteName()
cluster, _ := getClusterName()
api, apiError := getAPIName()
@@ -191,11 +192,8 @@ func onHttpRequestHeaders(ctx wrapper.HttpContext, config AIStatisticsConfig) ty
if consumer, _ := proxywasm.GetHttpRequestHeader(ConsumerKey); consumer != "" {
ctx.SetContext(ConsumerKey, consumer)
}
hasRequestBody := wrapper.HasRequestBody()
if hasRequestBody {
_ = proxywasm.RemoveHttpRequestHeader("Content-Length")
ctx.SetRequestBodyBufferLimit(defaultMaxBodyBytes)
}
ctx.SetRequestBodyBufferLimit(defaultMaxBodyBytes)
// Set user defined log & span attributes which type is fixed_value
setAttributeBySource(ctx, config, FixedValue, nil)

View File

@@ -99,6 +99,7 @@ func parseConfig(json gjson.Result, config *ClusterKeyRateLimitConfig) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config ClusterKeyRateLimitConfig) types.Action {
ctx.DisableReroute()
// 判断是否命中限流规则
val, ruleItem, configItem := checkRequestAgainstLimitRule(ctx, config.ruleItems)
if ruleItem == nil || configItem == nil {

View File

@@ -93,6 +93,7 @@ func extraceHttpFrame(frame string) ([][2]string, []byte, error) {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config AITransformerConfig, log log.Log) types.Action {
ctx.DisableReroute()
log.Info("onHttpRequestHeaders")
if !config.requestTransformEnable || config.requestTransformPrompt == "" {
ctx.DontReadRequestBody()

View File

@@ -87,6 +87,7 @@ func parseConfig(json gjson.Result, cfg *config.ClusterKeyRateLimitConfig) error
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config config.ClusterKeyRateLimitConfig) types.Action {
ctx.DisableReroute()
limitKey, count, timeWindow := "", int64(0), int64(0)
if config.GlobalThreshold != nil {

View File

@@ -75,6 +75,7 @@ func parseConfig(json gjson.Result, corsConfig *config.CorsConfig, log log.Log)
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, corsConfig config.CorsConfig, log log.Log) types.Action {
ctx.DisableReroute()
log.Debug("onHttpRequestHeaders()")
requestUrl, _ := proxywasm.GetHttpRequestHeader(":path")
method, _ := proxywasm.GetHttpRequestHeader(":method")

View File

@@ -61,6 +61,7 @@ func parseConfig(json gjson.Result, config *config.DeGraphQLConfig, log log.Log)
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config config.DeGraphQLConfig, log log.Log) types.Action {
ctx.DisableReroute()
log.Debug("onHttpRequestHeaders()")
log.Debugf("schema:%s host:%s path:%s", ctx.Scheme(), ctx.Host(), ctx.Path())
requestUrl, _ := proxywasm.GetHttpRequestHeader(":path")

View File

@@ -204,6 +204,7 @@ func onHttpRequestHeaders(ctx wrapper.HttpContext, config GeoIpConfig, log log.L
s string
err error
)
ctx.DisableReroute()
if config.IPSourceType == HeaderSourceType {
s, err = proxywasm.GetHttpRequestHeader(config.IPHeaderName)
if err == nil {

View File

@@ -59,6 +59,7 @@ func parseConfig(json gjson.Result, config *PluginConfig, log log.Log) error {
}
func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log log.Log) types.Action {
ctx.DisableReroute()
config.oidcHandler.SetContext(ctx)
req := getHttpRequest()
rw := util.NewRecorder()