diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-23 12:28:55 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-23 12:31:59 +0000 |
commit | f54468675b4039dea88084e37f1cd4c3d5aa465e (patch) | |
tree | 67dd39e2396762ec6c67029219e0161b9567a6ef /searchlib | |
parent | 44980f2e321659a88fb394e7e83fcd2f6b8cb430 (diff) |
Add request capability filters to search API functions
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp b/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp index 47fce192020..bc97e57d0b3 100644 --- a/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp +++ b/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp @@ -4,6 +4,7 @@ #include "searchapi.h" #include "docsumapi.h" #include "monitorapi.h" +#include <vespa/fnet/frt/require_capabilities.h> #include <vespa/fnet/frt/rpcrequest.h> #include <vespa/fnet/frt/supervisor.h> #include <vespa/vespalib/util/compressor.h> @@ -193,6 +194,10 @@ void describe_bix_param_return(FRT_ReflectionBuilder &rb) { rb.ReturnDesc("reply", "possibly compressed serialized reply"); } +std::unique_ptr<FRT_RequireCapabilities> make_search_api_capability_filter() { + return FRT_RequireCapabilities::of(vespalib::net::tls::Capability::content_search_api()); +} + } ProtoRpcAdapter::ProtoRpcAdapter(SearchServer &search_server, @@ -210,16 +215,19 @@ ProtoRpcAdapter::ProtoRpcAdapter(SearchServer &search_server, rb.DefineMethod("vespa.searchprotocol.search", "bix", "bix", FRT_METHOD(ProtoRpcAdapter::rpc_search), this); rb.MethodDesc("perform a search against this back-end"); + rb.RequestAccessFilter(make_search_api_capability_filter()); describe_bix_param_return(rb); //------------------------------------------------------------------------- rb.DefineMethod("vespa.searchprotocol.getDocsums", "bix", "bix", FRT_METHOD(ProtoRpcAdapter::rpc_getDocsums), this); rb.MethodDesc("fetch document summaries from this back-end"); + rb.RequestAccessFilter(make_search_api_capability_filter()); describe_bix_param_return(rb); //------------------------------------------------------------------------- rb.DefineMethod("vespa.searchprotocol.ping", "bix", "bix", FRT_METHOD(ProtoRpcAdapter::rpc_ping), this); rb.MethodDesc("ping this back-end"); + rb.RequestAccessFilter(make_search_api_capability_filter()); describe_bix_param_return(rb); //------------------------------------------------------------------------- } |