summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-08-23 12:28:55 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2022-08-23 12:31:59 +0000
commitf54468675b4039dea88084e37f1cd4c3d5aa465e (patch)
tree67dd39e2396762ec6c67029219e0161b9567a6ef /searchlib
parent44980f2e321659a88fb394e7e83fcd2f6b8cb430 (diff)
Add request capability filters to search API functions
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp8
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);
//-------------------------------------------------------------------------
}