diff --git a/api/pkg/filtermanager/filtermanager.go b/api/pkg/filtermanager/filtermanager.go index 7b85cbf4..fcb34536 100644 --- a/api/pkg/filtermanager/filtermanager.go +++ b/api/pkg/filtermanager/filtermanager.go @@ -247,8 +247,8 @@ func (p *FilterManagerConfigParser) Merge(parent interface{}, child interface{}) } type filterManager struct { - filters []*model.FilterWrapper - consumerFilters []*model.FilterWrapper + filters []*model.FilterWrapper + filtersNotAfterConsumer []*model.FilterWrapper decodeRequestNeeded bool decodeIdx int @@ -274,7 +274,7 @@ type filterManager struct { func (m *filterManager) Reset() { m.filters = nil - m.consumerFilters = nil + m.filtersNotAfterConsumer = nil m.decodeRequestNeeded = false m.decodeIdx = -1 @@ -539,8 +539,8 @@ func FilterManagerFactory(c interface{}) capi.StreamFilterFactory { if conf.consumerFiltersEndAt != 0 { consumerFiltersEndAt := conf.consumerFiltersEndAt - consumerFilters := filters[:consumerFiltersEndAt] - fm.consumerFilters = consumerFilters + filtersNotAfterConsumer := filters[:consumerFiltersEndAt] + fm.filtersNotAfterConsumer = filtersNotAfterConsumer fm.filters = filters[consumerFiltersEndAt:] } @@ -645,9 +645,9 @@ func (m *filterManager) DecodeHeaders(headers capi.RequestHeaderMap, endStream b RequestHeaderMap: headers, } m.reqHdr = headers - if len(m.consumerFilters) > 0 { - for _, f := range m.consumerFilters { - // Consumer plugins only use DecodeHeaders for now + if len(m.filtersNotAfterConsumer) > 0 { + for _, f := range m.filtersNotAfterConsumer { + // these filters only use DecodeHeaders for now res = f.DecodeHeaders(headers, endStream) if m.handleAction(res, phaseDecodeHeaders) { return diff --git a/api/pkg/plugins/plugins.go b/api/pkg/plugins/plugins.go index 10547263..81f9315c 100644 --- a/api/pkg/plugins/plugins.go +++ b/api/pkg/plugins/plugins.go @@ -64,7 +64,6 @@ const ( errInvalidGoPluginOrder = "invalid plugin order position: Go plugin should not use OrderPositionOuter or OrderPositionInner" errInvalidNativePluginOrder = "invalid plugin order position: Native plugin should use OrderPositionOuter or OrderPositionInner" errInvalidConsumerPluginOrder = "invalid plugin order position: Consumer plugin should use OrderPositionAuthn" - errAuthnPluginOrder = "Authn plugin should run in the DecodeHeaders phase" errDecodeRequestUnsatified = "DecodeRequest is run only after DecodeHeaders returns WaitAllData. So DecodeHeaders should be defined in this plugin." errEncodeResponseUnsatified = "EncodeResponse is run only after EncodeHeaders returns WaitAllData. So EncodeHeaders should be defined in this plugin." ) diff --git a/controller/tests/integration/controller/httpfilterpolicy_controller_gateway_test.go b/controller/tests/integration/controller/httpfilterpolicy_controller_gateway_test.go index 899d36c2..040f250e 100644 --- a/controller/tests/integration/controller/httpfilterpolicy_controller_gateway_test.go +++ b/controller/tests/integration/controller/httpfilterpolicy_controller_gateway_test.go @@ -186,11 +186,7 @@ var _ = Describe("HTTPFilterPolicy controller, for gateway", func() { if len(policy.Status.Conditions) == 0 { return false } - if policy.Name == "policy" { - if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonAccepted) { - return false - } - } else { + if policy.Name != "policy" { if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonTargetNotFound) { return false } @@ -263,10 +259,6 @@ var _ = Describe("HTTPFilterPolicy controller, for gateway", func() { if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonTargetNotFound) { return false } - } else { - if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonAccepted) { - return false - } } } return true @@ -391,11 +383,7 @@ var _ = Describe("HTTPFilterPolicy controller, for gateway", func() { if len(policy.Status.Conditions) == 0 { return false } - if policy.Name == "policy" { - if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonAccepted) { - return false - } - } else { + if policy.Name != "policy" { if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonTargetNotFound) { return false } @@ -469,10 +457,6 @@ var _ = Describe("HTTPFilterPolicy controller, for gateway", func() { if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonTargetNotFound) { return false } - } else { - if policy.Status.Conditions[0].Reason != string(gwapiv1a2.PolicyReasonAccepted) { - return false - } } } return true diff --git a/types/apis/v1/validation.go b/types/apis/v1/validation.go index e1fef00b..695e6ef1 100644 --- a/types/apis/v1/validation.go +++ b/types/apis/v1/validation.go @@ -229,7 +229,7 @@ func ValidateConsumer(c *Consumer) error { pos := p.Order().Position if pos <= plugins.OrderPositionAuthn || pos >= plugins.OrderPositionInner { - return errors.New("http filter should not in authn/pre/post position: " + name) + return errors.New("this http filter can not be added by the consumer: " + name) } data := filter.Config.Raw diff --git a/types/apis/v1/validation_test.go b/types/apis/v1/validation_test.go index 68ef7410..64d61944 100644 --- a/types/apis/v1/validation_test.go +++ b/types/apis/v1/validation_test.go @@ -543,7 +543,7 @@ func TestValidateConsumer(t *testing.T) { }, }, }, - err: "http filter should not in authn/pre/post position: keyAuth", + err: "this http filter can not be added by the consumer: keyAuth", }, }