authorization_policy_provider.cc
Go to the documentation of this file.
1 // Copyright 2021 gRPC authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include <memory>
16 #include <string>
17 
18 #include <grpc/grpc_security.h>
19 #include <grpc/status.h>
20 #include <grpc/support/alloc.h>
22 #include <grpcpp/support/config.h>
23 #include <grpcpp/support/status.h>
24 
25 namespace grpc {
26 namespace experimental {
27 
28 std::shared_ptr<StaticDataAuthorizationPolicyProvider>
32  const char* error_details;
35  authz_policy.c_str(), &code, &error_details);
36  if (code != GRPC_STATUS_OK) {
37  *status = grpc::Status(static_cast<grpc::StatusCode>(code), error_details);
38  gpr_free(const_cast<char*>(error_details));
39  return nullptr;
40  }
41  *status = grpc::Status();
42  return std::make_shared<StaticDataAuthorizationPolicyProvider>(provider);
43 }
44 
48 }
49 
50 std::shared_ptr<FileWatcherAuthorizationPolicyProvider>
52  const std::string& authz_policy_path, unsigned int refresh_interval_sec,
55  const char* error_details;
58  authz_policy_path.c_str(), refresh_interval_sec, &code,
59  &error_details);
60  if (code != GRPC_STATUS_OK) {
61  *status = grpc::Status(static_cast<grpc::StatusCode>(code), error_details);
62  gpr_free(const_cast<char*>(error_details));
63  return nullptr;
64  }
65  return std::make_shared<FileWatcherAuthorizationPolicyProvider>(provider);
66 }
67 
71 }
72 
73 } // namespace experimental
74 } // namespace grpc
grpc::status
auto status
Definition: cpp/client/credentials_test.cc:200
grpc::gpr_free
gpr_free(creds_file_name)
grpc
Definition: grpcpp/alarm.h:33
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
grpc::experimental::FileWatcherAuthorizationPolicyProvider::~FileWatcherAuthorizationPolicyProvider
~FileWatcherAuthorizationPolicyProvider() override
Definition: authorization_policy_provider.cc:69
grpc_status_code
grpc_status_code
Definition: include/grpc/impl/codegen/status.h:28
grpc::experimental::StaticDataAuthorizationPolicyProvider::c_provider_
grpc_authorization_policy_provider * c_provider_
Definition: include/grpcpp/security/authorization_policy_provider.h:57
grpc_authorization_policy_provider
Definition: src/core/lib/security/authorization/authorization_policy_provider.h:30
grpc_security.h
grpc_authorization_policy_provider_file_watcher_create
GRPCAPI grpc_authorization_policy_provider * grpc_authorization_policy_provider_file_watcher_create(const char *authz_policy_path, unsigned int refresh_interval_sec, grpc_status_code *code, const char **error_details)
Definition: grpc_authorization_policy_provider.cc:207
status.h
GRPC_STATUS_OK
@ GRPC_STATUS_OK
Definition: include/grpc/impl/codegen/status.h:30
grpc.StatusCode
Definition: src/python/grpcio/grpc/__init__.py:232
config.h
grpc::experimental::StaticDataAuthorizationPolicyProvider::~StaticDataAuthorizationPolicyProvider
~StaticDataAuthorizationPolicyProvider() override
Definition: authorization_policy_provider.cc:46
alloc.h
grpc_authorization_policy_provider_static_data_create
GRPCAPI grpc_authorization_policy_provider * grpc_authorization_policy_provider_static_data_create(const char *authz_policy, grpc_status_code *code, const char **error_details)
Definition: grpc_authorization_policy_provider.cc:191
grpc::experimental::StaticDataAuthorizationPolicyProvider::Create
static std::shared_ptr< StaticDataAuthorizationPolicyProvider > Create(const std::string &authz_policy, grpc::Status *status)
Definition: authorization_policy_provider.cc:29
grpc::protobuf::util::Status
GRPC_CUSTOM_UTIL_STATUS Status
Definition: include/grpcpp/impl/codegen/config_protobuf.h:93
grpc::Status
Definition: include/grpcpp/impl/codegen/status.h:35
grpc::experimental::FileWatcherAuthorizationPolicyProvider::Create
static std::shared_ptr< FileWatcherAuthorizationPolicyProvider > Create(const std::string &authz_policy_path, unsigned int refresh_interval_sec, grpc::Status *status)
Definition: authorization_policy_provider.cc:51
grpc::experimental::FileWatcherAuthorizationPolicyProvider::c_provider_
grpc_authorization_policy_provider * c_provider_
Definition: include/grpcpp/security/authorization_policy_provider.h:82
authorization_policy_provider.h
grpc_authorization_policy_provider_release
GRPCAPI void grpc_authorization_policy_provider_release(grpc_authorization_policy_provider *provider)
Definition: grpc_authorization_policy_provider.cc:222
code
Definition: bloaty/third_party/zlib/contrib/infback9/inftree9.h:24
status.h


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:45