diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index 3810cec7d29e4..6faba0e21f1b3 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -365,9 +365,8 @@ RouteEntryImplBase::RouteEntryImplBase(const VirtualHostImpl& vhost, direct_response_body_(ConfigUtility::parseDirectResponseBody( route, factory_context.api(), vhost_.globalRouteConfig().maxDirectResponseBodySizeBytes())), - per_filter_configs_(route.typed_per_filter_config(), - route.hidden_envoy_deprecated_per_filter_config(), optional_http_filters, - factory_context, validator), + per_filter_configs_(route.typed_per_filter_config(), optional_http_filters, factory_context, + validator), route_name_(route.name()), time_source_(factory_context.dispatcher().timeSource()) { if (route.route().has_metadata_match()) { const auto filter_it = route.route().metadata_match().filter_metadata().find( @@ -1036,9 +1035,8 @@ RouteEntryImplBase::WeightedClusterEntry::WeightedClusterEntry( cluster.request_headers_to_remove())), response_headers_parser_(HeaderParser::configure(cluster.response_headers_to_add(), cluster.response_headers_to_remove())), - per_filter_configs_(cluster.typed_per_filter_config(), - cluster.hidden_envoy_deprecated_per_filter_config(), - optional_http_filters, factory_context, validator), + per_filter_configs_(cluster.typed_per_filter_config(), optional_http_filters, factory_context, + validator), host_rewrite_(cluster.host_rewrite_literal()) { if (cluster.has_metadata_match()) { const auto filter_it = cluster.metadata_match().filter_metadata().find( @@ -1217,9 +1215,8 @@ VirtualHostImpl::VirtualHostImpl( virtual_host.request_headers_to_remove())), response_headers_parser_(HeaderParser::configure(virtual_host.response_headers_to_add(), virtual_host.response_headers_to_remove())), - per_filter_configs_(virtual_host.typed_per_filter_config(), - virtual_host.hidden_envoy_deprecated_per_filter_config(), - optional_http_filters, factory_context, validator), + per_filter_configs_(virtual_host.typed_per_filter_config(), optional_http_filters, + factory_context, validator), retry_shadow_buffer_limit_(PROTOBUF_GET_WRAPPED_OR_DEFAULT( virtual_host, per_request_buffer_limit_bytes, std::numeric_limits::max())), include_attempt_count_in_request_(virtual_host.include_request_attempt_count()), @@ -1582,13 +1579,9 @@ RouteSpecificFilterConfigConstSharedPtr PerFilterConfigs::createRouteSpecificFil PerFilterConfigs::PerFilterConfigs( const Protobuf::Map& typed_configs, - const Protobuf::Map& configs, const OptionalHttpFilters& optional_http_filters, Server::Configuration::ServerFactoryContext& factory_context, ProtobufMessage::ValidationVisitor& validator) { - if (!typed_configs.empty() && !configs.empty()) { - throw EnvoyException("Only one of typed_configs or configs can be specified"); - } for (const auto& it : typed_configs) { // TODO(zuercher): canonicalization may be removed when deprecated filter names are removed @@ -1602,19 +1595,6 @@ PerFilterConfigs::PerFilterConfigs( configs_[name] = std::move(object); } } - - for (const auto& it : configs) { - // TODO(zuercher): canonicalization may be removed when deprecated filter names are removed - const auto& name = - Extensions::HttpFilters::Common::FilterNameUtil::canonicalFilterName(it.first); - - auto object = - createRouteSpecificFilterConfig(name, ProtobufWkt::Any::default_instance(), it.second, - optional_http_filters, factory_context, validator); - if (object != nullptr) { - configs_[name] = std::move(object); - } - } } const RouteSpecificFilterConfig* PerFilterConfigs::get(const std::string& name) const { diff --git a/source/common/router/config_impl.h b/source/common/router/config_impl.h index cbad85c100ce7..d18eb41969b52 100644 --- a/source/common/router/config_impl.h +++ b/source/common/router/config_impl.h @@ -77,7 +77,6 @@ using OptionalHttpFilters = absl::flat_hash_set; class PerFilterConfigs : public Logger::Loggable { public: PerFilterConfigs(const Protobuf::Map& typed_configs, - const Protobuf::Map& configs, const OptionalHttpFilters& optional_http_filters, Server::Configuration::ServerFactoryContext& factory_context, ProtobufMessage::ValidationVisitor& validator); diff --git a/test/common/router/config_impl_test.cc b/test/common/router/config_impl_test.cc index 995accac44b4c..dae0573b262b2 100644 --- a/test/common/router/config_impl_test.cc +++ b/test/common/router/config_impl_test.cc @@ -7580,64 +7580,6 @@ class PerFilterConfigsTest : public testing::Test, public ConfigImplTestBase { registered_default_factory_; }; -TEST_F(PerFilterConfigsTest, DEPRECATED_FEATURE_TEST(TypedConfigFilterError)) { - TestDeprecatedV2Api _deprecated_v2_api; - { - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { unknown.filter: {} } - typed_per_filter_config: - unknown.filter: - "@type": type.googleapis.com/google.protobuf.Timestamp -)EOF"; - - EXPECT_THROW_WITH_MESSAGE( - TestConfigImpl(parseRouteConfigurationFromYaml(yaml), factory_context_, true), - EnvoyException, "Only one of typed_configs or configs can be specified"); - } - - { - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { unknown.filter: {} } - typed_per_filter_config: - unknown.filter: - "@type": type.googleapis.com/google.protobuf.Timestamp -)EOF"; - - EXPECT_THROW_WITH_MESSAGE( - TestConfigImpl(parseRouteConfigurationFromYaml(yaml), factory_context_, true), - EnvoyException, "Only one of typed_configs or configs can be specified"); - } -} - -TEST_F(PerFilterConfigsTest, DEPRECATED_FEATURE_TEST(UnknownFilterStruct)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { unknown.filter: {} } -)EOF"; - - EXPECT_THROW_WITH_MESSAGE( - TestConfigImpl(parseRouteConfigurationFromYaml(yaml), factory_context_, true), EnvoyException, - "Didn't find a registered implementation for name: 'unknown.filter'"); -} - TEST_F(PerFilterConfigsTest, UnknownFilterAny) { const std::string yaml = R"EOF( virtual_hosts: @@ -7656,47 +7598,6 @@ TEST_F(PerFilterConfigsTest, UnknownFilterAny) { "Didn't find a registered implementation for name: 'unknown.filter'"); } -// Test that a trivially specified NamedHttpFilterConfigFactory ignores per_filter_config without -// error. -TEST_F(PerFilterConfigsTest, - DEPRECATED_FEATURE_TEST(DefaultFilterImplementationStructPerVirtualHost)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { test.default.filter: { seconds: 123} } -)EOF"; - - Runtime::LoaderSingleton::getExisting()->mergeValues( - {{"envoy.reloadable_features.check_unsupported_typed_per_filter_config", "false"}}); - - factory_context_.cluster_manager_.initializeClusters({"baz"}, {}); - checkNoPerFilterConfig(yaml); -} - -TEST_F(PerFilterConfigsTest, DEPRECATED_FEATURE_TEST(DefaultFilterImplementationStructPerRoute)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { test.default.filter: { seconds: 123} } -)EOF"; - - Runtime::LoaderSingleton::getExisting()->mergeValues( - {{"envoy.reloadable_features.check_unsupported_typed_per_filter_config", "false"}}); - - factory_context_.cluster_manager_.initializeClusters({"baz"}, {}); - checkNoPerFilterConfig(yaml); -} - TEST_F(PerFilterConfigsTest, DefaultFilterImplementationAnyPerVirtualHost) { TestScopedRuntime scoped_runtime; Runtime::LoaderSingleton::getExisting()->mergeValues( @@ -7741,46 +7642,6 @@ TEST_F(PerFilterConfigsTest, DefaultFilterImplementationAnyPerRoute) { checkNoPerFilterConfig(yaml); } -// Test that a trivially specified NamedHttpFilterConfigFactory reject unsupported -// per_filter_config. -TEST_F(PerFilterConfigsTest, - DEPRECATED_FEATURE_TEST(DefaultFilterImplementationStructWithCheckPerVirtualHost)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { test.default.filter: { seconds: 123} } -)EOF"; - - EXPECT_THROW_WITH_MESSAGE( - TestConfigImpl config(parseRouteConfigurationFromYaml(yaml), factory_context_, true), - EnvoyException, - "The filter test.default.filter doesn't support virtual host-specific configurations"); -} - -TEST_F(PerFilterConfigsTest, - DEPRECATED_FEATURE_TEST(DefaultFilterImplementationStructWithCheckPerRoute)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { test.default.filter: { seconds: 123} } -)EOF"; - - EXPECT_THROW_WITH_MESSAGE( - TestConfigImpl config(parseRouteConfigurationFromYaml(yaml), factory_context_, true), - EnvoyException, - "The filter test.default.filter doesn't support virtual host-specific configurations"); -} - TEST_F(PerFilterConfigsTest, DefaultFilterImplementationAnyWithCheckPerVirtualHost) { const std::string yaml = R"EOF( virtual_hosts: @@ -7945,24 +7806,6 @@ TEST_F(PerFilterConfigsTest, PerRouteWithOptionalUnknownFilter) { checkNoPerFilterConfig(yaml, optional_http_filters); } -TEST_F(PerFilterConfigsTest, DEPRECATED_FEATURE_TEST(RouteLocalConfig)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: { cluster: baz } - per_filter_config: { test.filter: { seconds: 123 } } - per_filter_config: { test.filter: { seconds: 456 } } -)EOF"; - - factory_context_.cluster_manager_.initializeClusters({"baz"}, {}); - absl::InlinedVector expected_traveled_config({456, 123}); - checkEach(yaml, 123, expected_traveled_config); -} - TEST_F(PerFilterConfigsTest, RouteLocalTypedConfig) { const std::string yaml = R"EOF( virtual_hosts: @@ -8014,28 +7857,6 @@ TEST_F(PerFilterConfigsTest, RouteLocalTypedConfigWithDirectResponse) { checkEach(yaml, 123, expected_traveled_config); } -TEST_F(PerFilterConfigsTest, DEPRECATED_FEATURE_TEST(WeightedClusterConfig)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: - weighted_clusters: - clusters: - - name: baz - weight: 100 - per_filter_config: { test.filter: { seconds: 789 } } - per_filter_config: { test.filter: { seconds: 1011 } } -)EOF"; - - factory_context_.cluster_manager_.initializeClusters({"baz"}, {}); - absl::InlinedVector expected_traveled_config({1011, 789}); - checkEach(yaml, 789, expected_traveled_config); -} - TEST_F(PerFilterConfigsTest, WeightedClusterTypedConfig) { const std::string yaml = R"EOF( virtual_hosts: @@ -8065,28 +7886,6 @@ TEST_F(PerFilterConfigsTest, WeightedClusterTypedConfig) { checkEach(yaml, 789, expected_traveled_config); } -TEST_F(PerFilterConfigsTest, DEPRECATED_FEATURE_TEST(WeightedClusterFallthroughConfig)) { - TestDeprecatedV2Api _deprecated_v2_api; - const std::string yaml = R"EOF( -virtual_hosts: - - name: bar - domains: ["*"] - routes: - - match: { prefix: "/" } - route: - weighted_clusters: - clusters: - - name: baz - weight: 100 - per_filter_config: { test.filter: { seconds: 1213 } } - per_filter_config: { test.filter: { seconds: 1415 } } -)EOF"; - - factory_context_.cluster_manager_.initializeClusters({"baz"}, {}); - absl::InlinedVector expected_traveled_config({1415, 1213}); - checkEach(yaml, 1213, expected_traveled_config); -} - TEST_F(PerFilterConfigsTest, WeightedClusterFallthroughTypedConfig) { const std::string yaml = R"EOF( virtual_hosts: