diff --git a/BUILD b/BUILD
index afff44dfd0d..d66485e998c 100644
--- a/BUILD
+++ b/BUILD
@@ -1763,7 +1763,6 @@ grpc_cc_library(
"//src/core:lib/security/credentials/plugin/plugin_credentials.cc",
"//src/core:lib/security/security_connector/security_connector.cc",
"//src/core:lib/security/transport/client_auth_filter.cc",
- "//src/core:lib/security/transport/legacy_server_auth_filter.cc",
"//src/core:lib/security/transport/secure_endpoint.cc",
"//src/core:lib/security/transport/security_handshaker.cc",
"//src/core:lib/security/transport/server_auth_filter.cc",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 60817e90943..26f2f951268 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2458,7 +2458,6 @@ add_library(grpc
src/core/lib/security/security_connector/ssl_utils.cc
src/core/lib/security/security_connector/tls/tls_security_connector.cc
src/core/lib/security/transport/client_auth_filter.cc
- src/core/lib/security/transport/legacy_server_auth_filter.cc
src/core/lib/security/transport/secure_endpoint.cc
src/core/lib/security/transport/security_handshaker.cc
src/core/lib/security/transport/server_auth_filter.cc
@@ -3151,7 +3150,6 @@ add_library(grpc_unsecure
src/core/lib/security/security_connector/load_system_roots_supported.cc
src/core/lib/security/security_connector/security_connector.cc
src/core/lib/security/transport/client_auth_filter.cc
- src/core/lib/security/transport/legacy_server_auth_filter.cc
src/core/lib/security/transport/secure_endpoint.cc
src/core/lib/security/transport/security_handshaker.cc
src/core/lib/security/transport/server_auth_filter.cc
@@ -5140,7 +5138,6 @@ add_library(grpc_authorization_provider
src/core/lib/security/security_connector/load_system_roots_supported.cc
src/core/lib/security/security_connector/security_connector.cc
src/core/lib/security/transport/client_auth_filter.cc
- src/core/lib/security/transport/legacy_server_auth_filter.cc
src/core/lib/security/transport/secure_endpoint.cc
src/core/lib/security/transport/security_handshaker.cc
src/core/lib/security/transport/server_auth_filter.cc
diff --git a/Makefile b/Makefile
index d9931302394..5f47717caf7 100644
--- a/Makefile
+++ b/Makefile
@@ -1659,7 +1659,6 @@ LIBGRPC_SRC = \
src/core/lib/security/security_connector/ssl_utils.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/transport/client_auth_filter.cc \
- src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/security_handshaker.cc \
src/core/lib/security/transport/server_auth_filter.cc \
@@ -2202,7 +2201,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/security/security_connector/load_system_roots_supported.cc \
src/core/lib/security/security_connector/security_connector.cc \
src/core/lib/security/transport/client_auth_filter.cc \
- src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/security_handshaker.cc \
src/core/lib/security/transport/server_auth_filter.cc \
diff --git a/Package.swift b/Package.swift
index e7791b2b5f6..fe0e8286502 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1802,7 +1802,6 @@ let package = Package(
"src/core/lib/security/security_connector/tls/tls_security_connector.h",
"src/core/lib/security/transport/auth_filters.h",
"src/core/lib/security/transport/client_auth_filter.cc",
- "src/core/lib/security/transport/legacy_server_auth_filter.cc",
"src/core/lib/security/transport/secure_endpoint.cc",
"src/core/lib/security/transport/secure_endpoint.h",
"src/core/lib/security/transport/security_handshaker.cc",
diff --git a/bazel/experiments.bzl b/bazel/experiments.bzl
index 29a091e12d7..1b63ca0a1b2 100644
--- a/bazel/experiments.bzl
+++ b/bazel/experiments.bzl
@@ -52,7 +52,6 @@ EXPERIMENT_ENABLES = {
"unconstrained_max_quota_buffer_size": "unconstrained_max_quota_buffer_size",
"v3_channel_idle_filters": "v3_channel_idle_filters",
"v3_compression_filter": "v3_compression_filter",
- "v3_server_auth_filter": "v3_server_auth_filter",
"work_serializer_clears_time_cache": "work_serializer_clears_time_cache",
"work_serializer_dispatch": "work_serializer_dispatch",
"write_size_policy": "write_size_policy",
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index 71a87f34adb..3df91ee938a 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -1913,7 +1913,6 @@ libs:
- src/core/lib/security/security_connector/ssl_utils.cc
- src/core/lib/security/security_connector/tls/tls_security_connector.cc
- src/core/lib/security/transport/client_auth_filter.cc
- - src/core/lib/security/transport/legacy_server_auth_filter.cc
- src/core/lib/security/transport/secure_endpoint.cc
- src/core/lib/security/transport/security_handshaker.cc
- src/core/lib/security/transport/server_auth_filter.cc
@@ -2960,7 +2959,6 @@ libs:
- src/core/lib/security/security_connector/load_system_roots_supported.cc
- src/core/lib/security/security_connector/security_connector.cc
- src/core/lib/security/transport/client_auth_filter.cc
- - src/core/lib/security/transport/legacy_server_auth_filter.cc
- src/core/lib/security/transport/secure_endpoint.cc
- src/core/lib/security/transport/security_handshaker.cc
- src/core/lib/security/transport/server_auth_filter.cc
@@ -5004,7 +5002,6 @@ libs:
- src/core/lib/security/security_connector/load_system_roots_supported.cc
- src/core/lib/security/security_connector/security_connector.cc
- src/core/lib/security/transport/client_auth_filter.cc
- - src/core/lib/security/transport/legacy_server_auth_filter.cc
- src/core/lib/security/transport/secure_endpoint.cc
- src/core/lib/security/transport/security_handshaker.cc
- src/core/lib/security/transport/server_auth_filter.cc
diff --git a/config.m4 b/config.m4
index ad0d6caee28..146fbf7251c 100644
--- a/config.m4
+++ b/config.m4
@@ -791,7 +791,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/security/security_connector/ssl_utils.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/transport/client_auth_filter.cc \
- src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/security_handshaker.cc \
src/core/lib/security/transport/server_auth_filter.cc \
diff --git a/config.w32 b/config.w32
index f18a8de275d..6fd1c3c50dd 100644
--- a/config.w32
+++ b/config.w32
@@ -756,7 +756,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\security\\security_connector\\ssl_utils.cc " +
"src\\core\\lib\\security\\security_connector\\tls\\tls_security_connector.cc " +
"src\\core\\lib\\security\\transport\\client_auth_filter.cc " +
- "src\\core\\lib\\security\\transport\\legacy_server_auth_filter.cc " +
"src\\core\\lib\\security\\transport\\secure_endpoint.cc " +
"src\\core\\lib\\security\\transport\\security_handshaker.cc " +
"src\\core\\lib\\security\\transport\\server_auth_filter.cc " +
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 728112f7bb5..f0db95cb452 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -1901,7 +1901,6 @@ Pod::Spec.new do |s|
'src/core/lib/security/security_connector/tls/tls_security_connector.h',
'src/core/lib/security/transport/auth_filters.h',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/secure_endpoint.h',
'src/core/lib/security/transport/security_handshaker.cc',
diff --git a/grpc.gemspec b/grpc.gemspec
index 67b0773a721..e72ad3b33ce 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -1804,7 +1804,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/security/security_connector/tls/tls_security_connector.h )
s.files += %w( src/core/lib/security/transport/auth_filters.h )
s.files += %w( src/core/lib/security/transport/client_auth_filter.cc )
- s.files += %w( src/core/lib/security/transport/legacy_server_auth_filter.cc )
s.files += %w( src/core/lib/security/transport/secure_endpoint.cc )
s.files += %w( src/core/lib/security/transport/secure_endpoint.h )
s.files += %w( src/core/lib/security/transport/security_handshaker.cc )
diff --git a/grpc.gyp b/grpc.gyp
index 0cd7bdb032f..fd09bd55d1e 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -978,7 +978,6 @@
'src/core/lib/security/security_connector/ssl_utils.cc',
'src/core/lib/security/security_connector/tls/tls_security_connector.cc',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/security_handshaker.cc',
'src/core/lib/security/transport/server_auth_filter.cc',
@@ -1462,7 +1461,6 @@
'src/core/lib/security/security_connector/load_system_roots_supported.cc',
'src/core/lib/security/security_connector/security_connector.cc',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/security_handshaker.cc',
'src/core/lib/security/transport/server_auth_filter.cc',
@@ -2241,7 +2239,6 @@
'src/core/lib/security/security_connector/load_system_roots_supported.cc',
'src/core/lib/security/security_connector/security_connector.cc',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/security_handshaker.cc',
'src/core/lib/security/transport/server_auth_filter.cc',
diff --git a/package.xml b/package.xml
index 54d49bdff94..35e5ea371e7 100644
--- a/package.xml
+++ b/package.xml
@@ -1786,7 +1786,6 @@
-
diff --git a/src/core/lib/channel/promise_based_filter.h b/src/core/lib/channel/promise_based_filter.h
index 5c3b7ddb55a..b455ab869b9 100644
--- a/src/core/lib/channel/promise_based_filter.h
+++ b/src/core/lib/channel/promise_based_filter.h
@@ -63,7 +63,6 @@
#include "src/core/lib/promise/poll.h"
#include "src/core/lib/promise/promise.h"
#include "src/core/lib/promise/race.h"
-#include "src/core/lib/promise/try_seq.h"
#include "src/core/lib/resource_quota/arena.h"
#include "src/core/lib/slice/slice_buffer.h"
#include "src/core/lib/surface/call.h"
@@ -331,88 +330,54 @@ auto MapResult(void (Derived::Call::*fn)(ServerMetadata&), Promise x,
});
}
-template
-struct RunCallImpl;
+inline auto RunCall(const NoInterceptor*, CallArgs call_args,
+ NextPromiseFactory next_promise_factory, void*) {
+ return next_promise_factory(std::move(call_args));
+}
template
-struct RunCallImpl {
- static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
- void*) {
- return next_promise_factory(std::move(call_args));
- }
-};
+inline auto RunCall(void (Derived::Call::*fn)(ClientMetadata& md),
+ CallArgs call_args, NextPromiseFactory next_promise_factory,
+ FilterCallData* call_data) {
+ GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
+ call_data->call.OnClientInitialMetadata(*call_args.client_initial_metadata);
+ return next_promise_factory(std::move(call_args));
+}
template
-struct RunCallImpl {
- static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
- FilterCallData* call_data) {
- call_data->call.OnClientInitialMetadata(*call_args.client_initial_metadata);
- return next_promise_factory(std::move(call_args));
- }
-};
+inline auto RunCall(
+ ServerMetadataHandle (Derived::Call::*fn)(ClientMetadata& md),
+ CallArgs call_args, NextPromiseFactory next_promise_factory,
+ FilterCallData* call_data) -> ArenaPromise {
+ GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
+ auto return_md = call_data->call.OnClientInitialMetadata(
+ *call_args.client_initial_metadata);
+ if (return_md == nullptr) return next_promise_factory(std::move(call_args));
+ return Immediate(std::move(return_md));
+}
template
-struct RunCallImpl {
- static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
- FilterCallData* call_data)
- -> ArenaPromise {
- auto return_md = call_data->call.OnClientInitialMetadata(
- *call_args.client_initial_metadata);
- if (return_md == nullptr) return next_promise_factory(std::move(call_args));
- return Immediate(std::move(return_md));
- }
-};
+inline auto RunCall(ServerMetadataHandle (Derived::Call::*fn)(
+ ClientMetadata& md, Derived* channel),
+ CallArgs call_args, NextPromiseFactory next_promise_factory,
+ FilterCallData* call_data)
+ -> ArenaPromise {
+ GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
+ auto return_md = call_data->call.OnClientInitialMetadata(
+ *call_args.client_initial_metadata, call_data->channel);
+ if (return_md == nullptr) return next_promise_factory(std::move(call_args));
+ return Immediate(std::move(return_md));
+}
template
-struct RunCallImpl {
- static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
- FilterCallData* call_data)
- -> ArenaPromise {
- auto return_md = call_data->call.OnClientInitialMetadata(
- *call_args.client_initial_metadata, call_data->channel);
- if (return_md == nullptr) return next_promise_factory(std::move(call_args));
- return Immediate(std::move(return_md));
- }
-};
-
-template
-struct RunCallImpl<
- void (Derived::Call::*)(ClientMetadata& md, Derived* channel), Derived> {
- static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
- FilterCallData* call_data) {
- call_data->call.OnClientInitialMetadata(*call_args.client_initial_metadata,
- call_data->channel);
- return next_promise_factory(std::move(call_args));
- }
-};
-
-template
-struct RunCallImpl<
- Promise (Derived::Call::*)(ClientMetadata& md, Derived* channel), Derived,
- absl::void_t(
- std::declval>))>> {
- static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
- FilterCallData* call_data) {
- ClientMetadata& md_ref = *call_args.client_initial_metadata;
- return TrySeq(
- call_data->call.OnClientInitialMetadata(md_ref, call_data->channel),
- [call_args = std::move(call_args),
- next_promise_factory = std::move(next_promise_factory)]() mutable {
- return next_promise_factory(std::move(call_args));
- });
- }
-};
-
-template
-auto RunCall(Interceptor interceptor, CallArgs call_args,
- NextPromiseFactory next_promise_factory,
- FilterCallData* call_data) {
- GPR_DEBUG_ASSERT(interceptor == &Derived::Call::OnClientInitialMetadata);
- return RunCallImpl::Run(
- std::move(call_args), std::move(next_promise_factory), call_data);
+inline auto RunCall(void (Derived::Call::*fn)(ClientMetadata& md,
+ Derived* channel),
+ CallArgs call_args, NextPromiseFactory next_promise_factory,
+ FilterCallData* call_data) {
+ GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
+ call_data->call.OnClientInitialMetadata(*call_args.client_initial_metadata,
+ call_data->channel);
+ return next_promise_factory(std::move(call_args));
}
inline void InterceptClientToServerMessage(const NoInterceptor*, void*,
@@ -593,30 +558,6 @@ inline void InterceptClientInitialMetadata(
});
}
-// Returning a promise that resolves to something that can be cast to
-// ServerMetadataHandle also counts
-template
-absl::void_t(
- std::declval>))>
-InterceptClientInitialMetadata(Promise (Derived::Call::*promise_factory)(
- ClientMetadata& md, Derived* channel),
- typename Derived::Call* call, Derived* channel,
- CallSpineInterface* call_spine) {
- GPR_DEBUG_ASSERT(promise_factory == &Derived::Call::OnClientInitialMetadata);
- call_spine->client_initial_metadata().receiver.InterceptAndMap(
- [call, call_spine, channel](ClientMetadataHandle md) {
- ClientMetadata& md_ref = *md;
- return Map(call->OnClientInitialMetadata(md_ref, channel),
- [md = std::move(md),
- call_spine](PromiseResult status) mutable
- -> absl::optional {
- if (IsStatusOk(status)) return std::move(md);
- return call_spine->Cancel(
- StatusCast(std::move(status)));
- });
- });
-}
-
template
inline void InterceptServerInitialMetadata(const NoInterceptor*, void*,
const CallArgs&) {}
@@ -962,8 +903,6 @@ MakeFilterCall(Derived* derived) {
// the filter can return nullptr for success, or a metadata handle for
// failure (in which case the call will be aborted).
// useful for cases where the exact metadata returned needs to be customized.
-// It's also acceptable to return a promise that resolves to the
-// relevant return type listed above.
// Finally, OnFinalize can be added to intecept call finalization.
// It must have one of the signatures:
// - static const NoInterceptor OnFinalize:
diff --git a/src/core/lib/experiments/experiments.cc b/src/core/lib/experiments/experiments.cc
index 3ec2239e017..91415120585 100644
--- a/src/core/lib/experiments/experiments.cc
+++ b/src/core/lib/experiments/experiments.cc
@@ -158,9 +158,6 @@ const char* const additional_constraints_v3_channel_idle_filters = "{}";
const char* const description_v3_compression_filter =
"Use the compression filter utilizing the v3 filter api";
const char* const additional_constraints_v3_compression_filter = "{}";
-const char* const description_v3_server_auth_filter =
- "Use the server auth filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_server_auth_filter = "{}";
const char* const description_work_serializer_clears_time_cache =
"Have the work serializer clear the time cache when it dispatches work.";
const char* const additional_constraints_work_serializer_clears_time_cache =
@@ -277,8 +274,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_v3_channel_idle_filters, nullptr, 0, false, true},
{"v3_compression_filter", description_v3_compression_filter,
additional_constraints_v3_compression_filter, nullptr, 0, false, true},
- {"v3_server_auth_filter", description_v3_server_auth_filter,
- additional_constraints_v3_server_auth_filter, nullptr, 0, false, true},
{"work_serializer_clears_time_cache",
description_work_serializer_clears_time_cache,
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
@@ -432,9 +427,6 @@ const char* const additional_constraints_v3_channel_idle_filters = "{}";
const char* const description_v3_compression_filter =
"Use the compression filter utilizing the v3 filter api";
const char* const additional_constraints_v3_compression_filter = "{}";
-const char* const description_v3_server_auth_filter =
- "Use the server auth filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_server_auth_filter = "{}";
const char* const description_work_serializer_clears_time_cache =
"Have the work serializer clear the time cache when it dispatches work.";
const char* const additional_constraints_work_serializer_clears_time_cache =
@@ -551,8 +543,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_v3_channel_idle_filters, nullptr, 0, false, true},
{"v3_compression_filter", description_v3_compression_filter,
additional_constraints_v3_compression_filter, nullptr, 0, false, true},
- {"v3_server_auth_filter", description_v3_server_auth_filter,
- additional_constraints_v3_server_auth_filter, nullptr, 0, false, true},
{"work_serializer_clears_time_cache",
description_work_serializer_clears_time_cache,
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
@@ -706,9 +696,6 @@ const char* const additional_constraints_v3_channel_idle_filters = "{}";
const char* const description_v3_compression_filter =
"Use the compression filter utilizing the v3 filter api";
const char* const additional_constraints_v3_compression_filter = "{}";
-const char* const description_v3_server_auth_filter =
- "Use the server auth filter utilizing the v3 filter api";
-const char* const additional_constraints_v3_server_auth_filter = "{}";
const char* const description_work_serializer_clears_time_cache =
"Have the work serializer clear the time cache when it dispatches work.";
const char* const additional_constraints_work_serializer_clears_time_cache =
@@ -825,8 +812,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
additional_constraints_v3_channel_idle_filters, nullptr, 0, false, true},
{"v3_compression_filter", description_v3_compression_filter,
additional_constraints_v3_compression_filter, nullptr, 0, false, true},
- {"v3_server_auth_filter", description_v3_server_auth_filter,
- additional_constraints_v3_server_auth_filter, nullptr, 0, false, true},
{"work_serializer_clears_time_cache",
description_work_serializer_clears_time_cache,
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
diff --git a/src/core/lib/experiments/experiments.h b/src/core/lib/experiments/experiments.h
index 05e2157985e..d337d9da2fa 100644
--- a/src/core/lib/experiments/experiments.h
+++ b/src/core/lib/experiments/experiments.h
@@ -109,7 +109,6 @@ inline bool IsTraceRecordCallopsEnabled() { return false; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
inline bool IsV3CompressionFilterEnabled() { return false; }
-inline bool IsV3ServerAuthFilterEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
inline bool IsWorkSerializerDispatchEnabled() { return false; }
@@ -174,7 +173,6 @@ inline bool IsTraceRecordCallopsEnabled() { return false; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
inline bool IsV3CompressionFilterEnabled() { return false; }
-inline bool IsV3ServerAuthFilterEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
inline bool IsWorkSerializerDispatchEnabled() { return false; }
@@ -239,7 +237,6 @@ inline bool IsTraceRecordCallopsEnabled() { return false; }
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
inline bool IsV3CompressionFilterEnabled() { return false; }
-inline bool IsV3ServerAuthFilterEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
inline bool IsWorkSerializerDispatchEnabled() { return false; }
@@ -288,7 +285,6 @@ enum ExperimentIds {
kExperimentIdUnconstrainedMaxQuotaBufferSize,
kExperimentIdV3ChannelIdleFilters,
kExperimentIdV3CompressionFilter,
- kExperimentIdV3ServerAuthFilter,
kExperimentIdWorkSerializerClearsTimeCache,
kExperimentIdWorkSerializerDispatch,
kExperimentIdWriteSizePolicy,
@@ -436,10 +432,6 @@ inline bool IsV3ChannelIdleFiltersEnabled() {
inline bool IsV3CompressionFilterEnabled() {
return IsExperimentEnabled(kExperimentIdV3CompressionFilter);
}
-#define GRPC_EXPERIMENT_IS_INCLUDED_V3_SERVER_AUTH_FILTER
-inline bool IsV3ServerAuthFilterEnabled() {
- return IsExperimentEnabled(kExperimentIdV3ServerAuthFilter);
-}
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
inline bool IsWorkSerializerClearsTimeCacheEnabled() {
return IsExperimentEnabled(kExperimentIdWorkSerializerClearsTimeCache);
diff --git a/src/core/lib/experiments/experiments.yaml b/src/core/lib/experiments/experiments.yaml
index 36d3f2baaa1..8fd03836ea9 100644
--- a/src/core/lib/experiments/experiments.yaml
+++ b/src/core/lib/experiments/experiments.yaml
@@ -265,12 +265,6 @@
expiry: 2024/04/04
owner: ctiller@google.com
test_tags: ["compression_test"]
-- name: v3_server_auth_filter
- description:
- Use the server auth filter utilizing the v3 filter api
- expiry: 2024/04/04
- owner: ctiller@google.com
- test_tags: []
- name: work_serializer_clears_time_cache
description:
Have the work serializer clear the time cache when it dispatches work.
diff --git a/src/core/lib/promise/detail/promise_like.h b/src/core/lib/promise/detail/promise_like.h
index 6f7a6e5d639..4bec3661642 100644
--- a/src/core/lib/promise/detail/promise_like.h
+++ b/src/core/lib/promise/detail/promise_like.h
@@ -63,12 +63,15 @@ auto WrapInPoll(T&& x) -> decltype(PollWrapper::Wrap(std::forward(x))) {
return PollWrapper::Wrap(std::forward(x));
}
-template ::type>::value>>
+template
class PromiseLike {
private:
GPR_NO_UNIQUE_ADDRESS F f_;
+ static_assert(!std::is_void::type>::value,
+ "PromiseLike cannot be used with a function that returns void "
+ "- return Empty{} instead");
+
public:
// NOLINTNEXTLINE - internal detail that drastically simplifies calling code.
PromiseLike(F&& f) : f_(std::forward(f)) {}
diff --git a/src/core/lib/promise/poll.h b/src/core/lib/promise/poll.h
index d9b773f5409..d55174e7441 100644
--- a/src/core/lib/promise/poll.h
+++ b/src/core/lib/promise/poll.h
@@ -192,7 +192,6 @@ class Poll>;
// lambda, for example (via enable_if).
template
struct PollTraits {
- using Type = T;
static constexpr bool is_poll() { return false; }
};
diff --git a/src/core/lib/promise/promise.h b/src/core/lib/promise/promise.h
index dad484900d4..ab9b0d6becd 100644
--- a/src/core/lib/promise/promise.h
+++ b/src/core/lib/promise/promise.h
@@ -89,10 +89,6 @@ auto WithResult(F f) ->
return f;
}
-template
-using PromiseResult = typename PollTraits<
- typename promise_detail::PromiseLike::Result>::Type;
-
} // namespace grpc_core
#endif // GRPC_SRC_CORE_LIB_PROMISE_PROMISE_H
diff --git a/src/core/lib/security/transport/auth_filters.h b/src/core/lib/security/transport/auth_filters.h
index 37b4e5bf0c4..7c69b8f1b57 100644
--- a/src/core/lib/security/transport/auth_filters.h
+++ b/src/core/lib/security/transport/auth_filters.h
@@ -62,90 +62,23 @@ class ClientAuthFilter final : public ChannelFilter {
grpc_call_credentials::GetRequestMetadataArgs args_;
};
-class LegacyServerAuthFilter final : public ChannelFilter {
- public:
- static const grpc_channel_filter kFilter;
-
- static absl::StatusOr Create(const ChannelArgs& args,
- ChannelFilter::Args);
-
- // Construct a promise for one call.
- ArenaPromise MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) override;
-
- private:
- LegacyServerAuthFilter(
- RefCountedPtr server_credentials,
- RefCountedPtr auth_context);
-
- class RunApplicationCode;
-
- ArenaPromise> GetCallCredsMetadata(
- CallArgs call_args);
-
- RefCountedPtr server_credentials_;
- RefCountedPtr auth_context_;
-};
-
-class ServerAuthFilter final : public ImplementChannelFilter {
- private:
- ServerAuthFilter(RefCountedPtr server_credentials,
- RefCountedPtr auth_context);
-
- class RunApplicationCode {
- public:
- RunApplicationCode(ServerAuthFilter* filter, ClientMetadata& metadata);
-
- RunApplicationCode(const RunApplicationCode&) = delete;
- RunApplicationCode& operator=(const RunApplicationCode&) = delete;
- RunApplicationCode(RunApplicationCode&& other) noexcept
- : state_(std::exchange(other.state_, nullptr)) {}
- RunApplicationCode& operator=(RunApplicationCode&& other) noexcept {
- state_ = std::exchange(other.state_, nullptr);
- return *this;
- }
-
- Poll operator()();
-
- private:
- // Called from application code.
- static void OnMdProcessingDone(void* user_data,
- const grpc_metadata* consumed_md,
- size_t num_consumed_md,
- const grpc_metadata* response_md,
- size_t num_response_md,
- grpc_status_code status,
- const char* error_details);
-
- struct State;
- State* state_;
- };
-
+class ServerAuthFilter final : public ChannelFilter {
public:
static const grpc_channel_filter kFilter;
static absl::StatusOr Create(const ChannelArgs& args,
ChannelFilter::Args);
- class Call {
- public:
- explicit Call(ServerAuthFilter* filter);
- auto OnClientInitialMetadata(ClientMetadata& md, ServerAuthFilter* filter) {
- return If(
- filter->server_credentials_ == nullptr ||
- filter->server_credentials_->auth_metadata_processor().process ==
- nullptr,
- ImmediateOkStatus(),
- [filter, md = &md]() { return RunApplicationCode(filter, *md); });
- }
- static const NoInterceptor OnServerInitialMetadata;
- static const NoInterceptor OnClientToServerMessage;
- static const NoInterceptor OnServerToClientMessage;
- static const NoInterceptor OnServerTrailingMetadata;
- static const NoInterceptor OnFinalize;
- };
+ // Construct a promise for one call.
+ ArenaPromise MakeCallPromise(
+ CallArgs call_args, NextPromiseFactory next_promise_factory) override;
private:
+ ServerAuthFilter(RefCountedPtr server_credentials,
+ RefCountedPtr auth_context);
+
+ class RunApplicationCode;
+
ArenaPromise> GetCallCredsMetadata(
CallArgs call_args);
diff --git a/src/core/lib/security/transport/legacy_server_auth_filter.cc b/src/core/lib/security/transport/legacy_server_auth_filter.cc
deleted file mode 100644
index 7b8da39f2dd..00000000000
--- a/src/core/lib/security/transport/legacy_server_auth_filter.cc
+++ /dev/null
@@ -1,244 +0,0 @@
-//
-//
-// Copyright 2015 gRPC authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "absl/status/status.h"
-#include "absl/status/statusor.h"
-
-#include
-#include
-#include
-#include
-#include
-
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/channel_fwd.h"
-#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/context.h"
-#include "src/core/lib/channel/promise_based_filter.h"
-#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/gprpp/debug_location.h"
-#include "src/core/lib/gprpp/ref_counted_ptr.h"
-#include "src/core/lib/gprpp/status_helper.h"
-#include "src/core/lib/iomgr/error.h"
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/promise/activity.h"
-#include "src/core/lib/promise/arena_promise.h"
-#include "src/core/lib/promise/context.h"
-#include "src/core/lib/promise/poll.h"
-#include "src/core/lib/promise/try_seq.h"
-#include "src/core/lib/resource_quota/arena.h"
-#include "src/core/lib/security/context/security_context.h"
-#include "src/core/lib/security/credentials/credentials.h"
-#include "src/core/lib/security/transport/auth_filters.h" // IWYU pragma: keep
-#include "src/core/lib/slice/slice.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/surface/call_trace.h"
-#include "src/core/lib/transport/metadata_batch.h"
-#include "src/core/lib/transport/transport.h"
-
-namespace grpc_core {
-
-const grpc_channel_filter LegacyServerAuthFilter::kFilter =
- MakePromiseBasedFilter(
- "server-auth");
-
-namespace {
-
-class ArrayEncoder {
- public:
- explicit ArrayEncoder(grpc_metadata_array* result) : result_(result) {}
-
- void Encode(const Slice& key, const Slice& value) {
- Append(key.Ref(), value.Ref());
- }
-
- template
- void Encode(Which, const typename Which::ValueType& value) {
- Append(Slice(StaticSlice::FromStaticString(Which::key())),
- Slice(Which::Encode(value)));
- }
-
- void Encode(HttpMethodMetadata,
- const typename HttpMethodMetadata::ValueType&) {}
-
- private:
- void Append(Slice key, Slice value) {
- if (result_->count == result_->capacity) {
- result_->capacity =
- std::max(result_->capacity + 8, result_->capacity * 2);
- result_->metadata = static_cast(gpr_realloc(
- result_->metadata, result_->capacity * sizeof(grpc_metadata)));
- }
- auto* usr_md = &result_->metadata[result_->count++];
- usr_md->key = key.TakeCSlice();
- usr_md->value = value.TakeCSlice();
- }
-
- grpc_metadata_array* result_;
-};
-
-// TODO(ctiller): seek out all users of this functionality and change API so
-// that this unilateral format conversion IS NOT REQUIRED.
-grpc_metadata_array MetadataBatchToMetadataArray(
- const grpc_metadata_batch* batch) {
- grpc_metadata_array result;
- grpc_metadata_array_init(&result);
- ArrayEncoder encoder(&result);
- batch->Encode(&encoder);
- return result;
-}
-
-} // namespace
-
-class LegacyServerAuthFilter::RunApplicationCode {
- public:
- // TODO(ctiller): Allocate state_ into a pool on the arena to reuse this
- // memory later
- RunApplicationCode(LegacyServerAuthFilter* filter, CallArgs call_args)
- : state_(GetContext()->ManagedNew(std::move(call_args))) {
- if (grpc_call_trace.enabled()) {
- gpr_log(GPR_ERROR,
- "%s[server-auth]: Delegate to application: filter=%p this=%p "
- "auth_ctx=%p",
- Activity::current()->DebugTag().c_str(), filter, this,
- filter->auth_context_.get());
- }
- filter->server_credentials_->auth_metadata_processor().process(
- filter->server_credentials_->auth_metadata_processor().state,
- filter->auth_context_.get(), state_->md.metadata, state_->md.count,
- OnMdProcessingDone, state_);
- }
-
- RunApplicationCode(const RunApplicationCode&) = delete;
- RunApplicationCode& operator=(const RunApplicationCode&) = delete;
- RunApplicationCode(RunApplicationCode&& other) noexcept
- : state_(std::exchange(other.state_, nullptr)) {}
- RunApplicationCode& operator=(RunApplicationCode&& other) noexcept {
- state_ = std::exchange(other.state_, nullptr);
- return *this;
- }
-
- Poll> operator()() {
- if (state_->done.load(std::memory_order_acquire)) {
- return Poll>(std::move(state_->call_args));
- }
- return Pending{};
- }
-
- private:
- struct State {
- explicit State(CallArgs call_args) : call_args(std::move(call_args)) {}
- Waker waker{Activity::current()->MakeOwningWaker()};
- absl::StatusOr call_args;
- grpc_metadata_array md =
- MetadataBatchToMetadataArray(call_args->client_initial_metadata.get());
- std::atomic done{false};
- };
-
- // Called from application code.
- static void OnMdProcessingDone(
- void* user_data, const grpc_metadata* consumed_md, size_t num_consumed_md,
- const grpc_metadata* response_md, size_t num_response_md,
- grpc_status_code status, const char* error_details) {
- ApplicationCallbackExecCtx callback_exec_ctx;
- ExecCtx exec_ctx;
-
- auto* state = static_cast(user_data);
-
- // TODO(ZhenLian): Implement support for response_md.
- if (response_md != nullptr && num_response_md > 0) {
- gpr_log(GPR_ERROR,
- "response_md in auth metadata processing not supported for now. "
- "Ignoring...");
- }
-
- if (status == GRPC_STATUS_OK) {
- ClientMetadataHandle& md = state->call_args->client_initial_metadata;
- for (size_t i = 0; i < num_consumed_md; i++) {
- md->Remove(StringViewFromSlice(consumed_md[i].key));
- }
- } else {
- if (error_details == nullptr) {
- error_details = "Authentication metadata processing failed.";
- }
- state->call_args = grpc_error_set_int(
- absl::Status(static_cast(status), error_details),
- StatusIntProperty::kRpcStatus, status);
- }
-
- // Clean up.
- for (size_t i = 0; i < state->md.count; i++) {
- CSliceUnref(state->md.metadata[i].key);
- CSliceUnref(state->md.metadata[i].value);
- }
- grpc_metadata_array_destroy(&state->md);
-
- auto waker = std::move(state->waker);
- state->done.store(true, std::memory_order_release);
- waker.Wakeup();
- }
-
- State* state_;
-};
-
-ArenaPromise LegacyServerAuthFilter::MakeCallPromise(
- CallArgs call_args, NextPromiseFactory next_promise_factory) {
- // Create server security context. Set its auth context from channel
- // data and save it in the call context.
- grpc_server_security_context* server_ctx =
- grpc_server_security_context_create(GetContext());
- server_ctx->auth_context =
- auth_context_->Ref(DEBUG_LOCATION, "server_auth_filter");
- grpc_call_context_element& context =
- GetContext()[GRPC_CONTEXT_SECURITY];
- if (context.value != nullptr) context.destroy(context.value);
- context.value = server_ctx;
- context.destroy = grpc_server_security_context_destroy;
-
- if (server_credentials_ == nullptr ||
- server_credentials_->auth_metadata_processor().process == nullptr) {
- return next_promise_factory(std::move(call_args));
- }
-
- return TrySeq(RunApplicationCode(this, std::move(call_args)),
- std::move(next_promise_factory));
-}
-
-LegacyServerAuthFilter::LegacyServerAuthFilter(
- RefCountedPtr server_credentials,
- RefCountedPtr auth_context)
- : server_credentials_(server_credentials), auth_context_(auth_context) {}
-
-absl::StatusOr LegacyServerAuthFilter::Create(
- const ChannelArgs& args, ChannelFilter::Args) {
- auto auth_context = args.GetObjectRef();
- GPR_ASSERT(auth_context != nullptr);
- auto creds = args.GetObjectRef();
- return LegacyServerAuthFilter(std::move(creds), std::move(auth_context));
-}
-
-} // namespace grpc_core
diff --git a/src/core/lib/security/transport/server_auth_filter.cc b/src/core/lib/security/transport/server_auth_filter.cc
index b0713f41770..765ddcdf42b 100644
--- a/src/core/lib/security/transport/server_auth_filter.cc
+++ b/src/core/lib/security/transport/server_auth_filter.cc
@@ -66,12 +66,6 @@ const grpc_channel_filter ServerAuthFilter::kFilter =
MakePromiseBasedFilter(
"server-auth");
-const NoInterceptor ServerAuthFilter::Call::OnClientToServerMessage;
-const NoInterceptor ServerAuthFilter::Call::OnServerToClientMessage;
-const NoInterceptor ServerAuthFilter::Call::OnServerInitialMetadata;
-const NoInterceptor ServerAuthFilter::Call::OnServerTrailingMetadata;
-const NoInterceptor ServerAuthFilter::Call::OnFinalize;
-
namespace {
class ArrayEncoder {
@@ -120,92 +114,118 @@ grpc_metadata_array MetadataBatchToMetadataArray(
} // namespace
-struct ServerAuthFilter::RunApplicationCode::State {
- explicit State(ClientMetadata& client_metadata)
- : client_metadata(&client_metadata) {}
- Waker waker{Activity::current()->MakeOwningWaker()};
- absl::StatusOr client_metadata;
- grpc_metadata_array md = MetadataBatchToMetadataArray(*client_metadata);
- std::atomic done{false};
+class ServerAuthFilter::RunApplicationCode {
+ public:
+ // TODO(ctiller): Allocate state_ into a pool on the arena to reuse this
+ // memory later
+ RunApplicationCode(ServerAuthFilter* filter, CallArgs call_args)
+ : state_(GetContext()->ManagedNew(std::move(call_args))) {
+ if (grpc_call_trace.enabled()) {
+ gpr_log(GPR_ERROR,
+ "%s[server-auth]: Delegate to application: filter=%p this=%p "
+ "auth_ctx=%p",
+ Activity::current()->DebugTag().c_str(), filter, this,
+ filter->auth_context_.get());
+ }
+ filter->server_credentials_->auth_metadata_processor().process(
+ filter->server_credentials_->auth_metadata_processor().state,
+ filter->auth_context_.get(), state_->md.metadata, state_->md.count,
+ OnMdProcessingDone, state_);
+ }
+
+ RunApplicationCode(const RunApplicationCode&) = delete;
+ RunApplicationCode& operator=(const RunApplicationCode&) = delete;
+ RunApplicationCode(RunApplicationCode&& other) noexcept
+ : state_(std::exchange(other.state_, nullptr)) {}
+ RunApplicationCode& operator=(RunApplicationCode&& other) noexcept {
+ state_ = std::exchange(other.state_, nullptr);
+ return *this;
+ }
+
+ Poll> operator()() {
+ if (state_->done.load(std::memory_order_acquire)) {
+ return Poll>(std::move(state_->call_args));
+ }
+ return Pending{};
+ }
+
+ private:
+ struct State {
+ explicit State(CallArgs call_args) : call_args(std::move(call_args)) {}
+ Waker waker{Activity::current()->MakeOwningWaker()};
+ absl::StatusOr call_args;
+ grpc_metadata_array md =
+ MetadataBatchToMetadataArray(call_args->client_initial_metadata.get());
+ std::atomic done{false};
+ };
+
+ // Called from application code.
+ static void OnMdProcessingDone(
+ void* user_data, const grpc_metadata* consumed_md, size_t num_consumed_md,
+ const grpc_metadata* response_md, size_t num_response_md,
+ grpc_status_code status, const char* error_details) {
+ ApplicationCallbackExecCtx callback_exec_ctx;
+ ExecCtx exec_ctx;
+
+ auto* state = static_cast(user_data);
+
+ // TODO(ZhenLian): Implement support for response_md.
+ if (response_md != nullptr && num_response_md > 0) {
+ gpr_log(GPR_ERROR,
+ "response_md in auth metadata processing not supported for now. "
+ "Ignoring...");
+ }
+
+ if (status == GRPC_STATUS_OK) {
+ ClientMetadataHandle& md = state->call_args->client_initial_metadata;
+ for (size_t i = 0; i < num_consumed_md; i++) {
+ md->Remove(StringViewFromSlice(consumed_md[i].key));
+ }
+ } else {
+ if (error_details == nullptr) {
+ error_details = "Authentication metadata processing failed.";
+ }
+ state->call_args = grpc_error_set_int(
+ absl::Status(static_cast(status), error_details),
+ StatusIntProperty::kRpcStatus, status);
+ }
+
+ // Clean up.
+ for (size_t i = 0; i < state->md.count; i++) {
+ CSliceUnref(state->md.metadata[i].key);
+ CSliceUnref(state->md.metadata[i].value);
+ }
+ grpc_metadata_array_destroy(&state->md);
+
+ auto waker = std::move(state->waker);
+ state->done.store(true, std::memory_order_release);
+ waker.Wakeup();
+ }
+
+ State* state_;
};
-ServerAuthFilter::RunApplicationCode::RunApplicationCode(
- ServerAuthFilter* filter, ClientMetadata& metadata)
- : state_(GetContext()->ManagedNew(metadata)) {
- if (grpc_call_trace.enabled()) {
- gpr_log(GPR_ERROR,
- "%s[server-auth]: Delegate to application: filter=%p this=%p "
- "auth_ctx=%p",
- Activity::current()->DebugTag().c_str(), filter, this,
- filter->auth_context_.get());
- }
- filter->server_credentials_->auth_metadata_processor().process(
- filter->server_credentials_->auth_metadata_processor().state,
- filter->auth_context_.get(), state_->md.metadata, state_->md.count,
- OnMdProcessingDone, state_);
-}
-
-Poll ServerAuthFilter::RunApplicationCode::operator()() {
- if (state_->done.load(std::memory_order_acquire)) {
- return Poll(std::move(state_->client_metadata).status());
- }
- return Pending{};
-}
-
-void ServerAuthFilter::RunApplicationCode::OnMdProcessingDone(
- void* user_data, const grpc_metadata* consumed_md, size_t num_consumed_md,
- const grpc_metadata* response_md, size_t num_response_md,
- grpc_status_code status, const char* error_details) {
- ApplicationCallbackExecCtx callback_exec_ctx;
- ExecCtx exec_ctx;
-
- auto* state = static_cast(user_data);
-
- // TODO(ZhenLian): Implement support for response_md.
- if (response_md != nullptr && num_response_md > 0) {
- gpr_log(GPR_ERROR,
- "response_md in auth metadata processing not supported for now. "
- "Ignoring...");
- }
-
- if (status == GRPC_STATUS_OK) {
- ClientMetadata& md = **state->client_metadata;
- for (size_t i = 0; i < num_consumed_md; i++) {
- md.Remove(StringViewFromSlice(consumed_md[i].key));
- }
- } else {
- if (error_details == nullptr) {
- error_details = "Authentication metadata processing failed.";
- }
- state->client_metadata = grpc_error_set_int(
- absl::Status(static_cast(status), error_details),
- StatusIntProperty::kRpcStatus, status);
- }
-
- // Clean up.
- for (size_t i = 0; i < state->md.count; i++) {
- CSliceUnref(state->md.metadata[i].key);
- CSliceUnref(state->md.metadata[i].value);
- }
- grpc_metadata_array_destroy(&state->md);
-
- auto waker = std::move(state->waker);
- state->done.store(true, std::memory_order_release);
- waker.Wakeup();
-}
-
-ServerAuthFilter::Call::Call(ServerAuthFilter* filter) {
+ArenaPromise ServerAuthFilter::MakeCallPromise(
+ CallArgs call_args, NextPromiseFactory next_promise_factory) {
// Create server security context. Set its auth context from channel
// data and save it in the call context.
grpc_server_security_context* server_ctx =
grpc_server_security_context_create(GetContext());
server_ctx->auth_context =
- filter->auth_context_->Ref(DEBUG_LOCATION, "server_auth_filter");
+ auth_context_->Ref(DEBUG_LOCATION, "server_auth_filter");
grpc_call_context_element& context =
GetContext()[GRPC_CONTEXT_SECURITY];
if (context.value != nullptr) context.destroy(context.value);
context.value = server_ctx;
context.destroy = grpc_server_security_context_destroy;
+
+ if (server_credentials_ == nullptr ||
+ server_credentials_->auth_metadata_processor().process == nullptr) {
+ return next_promise_factory(std::move(call_args));
+ }
+
+ return TrySeq(RunApplicationCode(this, std::move(call_args)),
+ std::move(next_promise_factory));
}
ServerAuthFilter::ServerAuthFilter(
diff --git a/src/core/lib/surface/init.cc b/src/core/lib/surface/init.cc
index cf11feaf491..5535ece6f26 100644
--- a/src/core/lib/surface/init.cc
+++ b/src/core/lib/surface/init.cc
@@ -72,20 +72,14 @@ void RegisterSecurityFilters(CoreConfiguration::Builder* builder) {
builder->channel_init()
->RegisterFilter(GRPC_CLIENT_DIRECT_CHANNEL, &ClientAuthFilter::kFilter)
.IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR);
- if (IsV3ServerAuthFilterEnabled()) {
- builder->channel_init()
- ->RegisterFilter(GRPC_SERVER_CHANNEL, &ServerAuthFilter::kFilter)
- .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG);
- } else {
- builder->channel_init()
- ->RegisterFilter(GRPC_SERVER_CHANNEL, &LegacyServerAuthFilter::kFilter)
- .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG);
- }
+ builder->channel_init()
+ ->RegisterFilter(GRPC_SERVER_CHANNEL, &ServerAuthFilter::kFilter)
+ .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG);
builder->channel_init()
->RegisterFilter(GRPC_SERVER_CHANNEL,
&GrpcServerAuthzFilter::kFilterVtable)
.IfHasChannelArg(GRPC_ARG_AUTHORIZATION_POLICY_PROVIDER)
- .After({&ServerAuthFilter::kFilter, &LegacyServerAuthFilter::kFilter});
+ .After({&ServerAuthFilter::kFilter});
}
} // namespace grpc_core
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index bd30eef8d32..9c2ba0008a5 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -765,7 +765,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/security/security_connector/ssl_utils.cc',
'src/core/lib/security/security_connector/tls/tls_security_connector.cc',
'src/core/lib/security/transport/client_auth_filter.cc',
- 'src/core/lib/security/transport/legacy_server_auth_filter.cc',
'src/core/lib/security/transport/secure_endpoint.cc',
'src/core/lib/security/transport/security_handshaker.cc',
'src/core/lib/security/transport/server_auth_filter.cc',
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index b5b0613515e..66440c542e3 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -2803,7 +2803,6 @@ src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.h \
src/core/lib/security/transport/auth_filters.h \
src/core/lib/security/transport/client_auth_filter.cc \
-src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/secure_endpoint.h \
src/core/lib/security/transport/security_handshaker.cc \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 20bcf8d1df8..aa559d588d1 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -2582,7 +2582,6 @@ src/core/lib/security/security_connector/tls/tls_security_connector.cc \
src/core/lib/security/security_connector/tls/tls_security_connector.h \
src/core/lib/security/transport/auth_filters.h \
src/core/lib/security/transport/client_auth_filter.cc \
-src/core/lib/security/transport/legacy_server_auth_filter.cc \
src/core/lib/security/transport/secure_endpoint.cc \
src/core/lib/security/transport/secure_endpoint.h \
src/core/lib/security/transport/security_handshaker.cc \