3 * Copyright 2015 gRPC authors.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
19 #ifndef GRPC_INTERNAL_CPP_COMMON_SECURE_AUTH_CONTEXT_H
20 #define GRPC_INTERNAL_CPP_COMMON_SECURE_AUTH_CONTEXT_H
22 #include <grpcpp/security/auth_context.h>
24 #include "src/core/lib/gprpp/ref_counted_ptr.h"
25 #include "src/core/lib/security/context/security_context.h"
29 class SecureAuthContext final : public AuthContext {
31 explicit SecureAuthContext(grpc_auth_context* ctx)
32 : ctx_(ctx != nullptr ? ctx->Ref() : nullptr) {}
34 ~SecureAuthContext() override = default;
36 bool IsPeerAuthenticated() const override;
38 std::vector<grpc::string_ref> GetPeerIdentity() const override;
40 std::string GetPeerIdentityPropertyName() const override;
42 std::vector<grpc::string_ref> FindPropertyValues(
43 const std::string& name) const override;
45 AuthPropertyIterator begin() const override;
47 AuthPropertyIterator end() const override;
49 void AddProperty(const std::string& key,
50 const grpc::string_ref& value) override;
52 virtual bool SetPeerIdentityPropertyName(const std::string& name) override;
55 grpc_core::RefCountedPtr<grpc_auth_context> ctx_;
60 #endif // GRPC_INTERNAL_CPP_COMMON_SECURE_AUTH_CONTEXT_H