in internal/plugin/plugin.go [112:130]
func (ph *requestPhase) filter(conf RuleConf, w *inHTTP.ReqResponse, r *inHTTP.Request) error {
for _, c := range conf {
plugin := findPlugin(c.Name)
if plugin == nil {
log.Warnf("can't find plugin %s, skip", c.Name)
continue
}
log.Infof("run plugin %s", c.Name)
plugin.RequestFilter(c.Value, w, r)
if w.HasChange() {
// response is generated, no need to continue
break
}
}
return nil
}