diff --git a/docs/root/version_history/current.rst b/docs/root/version_history/current.rst index e40673e38cef3..8fd722049a198 100644 --- a/docs/root/version_history/current.rst +++ b/docs/root/version_history/current.rst @@ -26,6 +26,7 @@ Removed Config or Runtime * http: removed ``envoy.reloadable_features.dont_add_content_length_for_bodiless_requests deprecation`` and legacy code paths. * http: removed ``envoy.reloadable_features.improved_stream_limit_handling`` and legacy code paths. * http: removed ``envoy.reloadable_features.return_502_for_upstream_protocol_errors``. Envoy will always return 502 code upon encountering upstream protocol error. +* http: removed ``envoy.reloadable_features.treat_host_like_authority`` and legacy code paths. * http: removed ``envoy.reloadable_features.treat_upstream_connect_timeout_as_connect_failure`` and legacy code paths. New Features diff --git a/source/common/http/header_utility.cc b/source/common/http/header_utility.cc index 7c87f4af84999..5ec89d6228c60 100644 --- a/source/common/http/header_utility.cc +++ b/source/common/http/header_utility.cc @@ -377,8 +377,7 @@ bool HeaderUtility::isRemovableHeader(absl::string_view header) { bool HeaderUtility::isModifiableHeader(absl::string_view header) { return (header.empty() || header[0] != ':') && - (!Runtime::runtimeFeatureEnabled("envoy.reloadable_features.treat_host_like_authority") || - !absl::EqualsIgnoreCase(header, Headers::get().HostLegacy.get())); + !absl::EqualsIgnoreCase(header, Headers::get().HostLegacy.get()); } HeaderUtility::HeaderValidationResult HeaderUtility::checkHeaderNameForUnderscores( diff --git a/source/common/runtime/runtime_features.cc b/source/common/runtime/runtime_features.cc index 2ad1a5373aa4d..6c364c96660ea 100644 --- a/source/common/runtime/runtime_features.cc +++ b/source/common/runtime/runtime_features.cc @@ -84,7 +84,6 @@ constexpr const char* runtime_features[] = { "envoy.reloadable_features.require_strict_1xx_and_204_response_headers", "envoy.reloadable_features.send_strict_1xx_and_204_response_headers", "envoy.reloadable_features.strip_port_from_connect", - "envoy.reloadable_features.treat_host_like_authority", "envoy.reloadable_features.udp_listener_updates_filter_chain_in_place", "envoy.reloadable_features.udp_per_event_loop_read_limit", "envoy.reloadable_features.unquote_log_string_values", diff --git a/test/common/router/config_impl_test.cc b/test/common/router/config_impl_test.cc index c540db9e123f2..8d7945bf5c248 100644 --- a/test/common/router/config_impl_test.cc +++ b/test/common/router/config_impl_test.cc @@ -1710,29 +1710,6 @@ TEST_F(RouteMatcherTest, TestRequestHeadersToAddNoHostOrPseudoHeader) { } } -TEST_F(RouteMatcherTest, TestRequestHeadersToAddLegacyHostHeader) { - TestScopedRuntime scoped_runtime; - Runtime::LoaderSingleton::getExisting()->mergeValues( - {{"envoy.reloadable_features.treat_host_like_authority", "false"}}); - - const std::string yaml = R"EOF( -virtual_hosts: - - name: www2 - domains: ["*"] - request_headers_to_add: - - header: - key: "host" - value: vhost-www2 - append: false -)EOF"; - - NiceMock stream_info; - - envoy::config::route::v3::RouteConfiguration route_config = parseRouteConfigurationFromYaml(yaml); - - EXPECT_NO_THROW(TestConfigImpl config(route_config, factory_context_, true)); -} - // Validate that we can't remove :-prefixed request headers. TEST_F(RouteMatcherTest, TestRequestHeadersToRemoveNoPseudoHeader) { for (const std::string& header :