GRPC C++
1.0.0
Main Page
Modules
Namespaces
Data Structures
Files
File List
Globals
include
grpc++
impl
codegen
security
auth_context.h
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2015, Google Inc.
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are
8
* met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above
13
* copyright notice, this list of conditions and the following disclaimer
14
* in the documentation and/or other materials provided with the
15
* distribution.
16
* * Neither the name of Google Inc. nor the names of its
17
* contributors may be used to endorse or promote products derived from
18
* this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*
32
*/
33
34
#ifndef GRPCXX_IMPL_CODEGEN_SECURITY_AUTH_CONTEXT_H
35
#define GRPCXX_IMPL_CODEGEN_SECURITY_AUTH_CONTEXT_H
36
37
#include <iterator>
38
#include <vector>
39
40
#include <
grpc++/impl/codegen/config.h
>
41
#include <
grpc++/impl/codegen/string_ref.h
>
42
43
struct
grpc_auth_context;
44
struct
grpc_auth_property;
45
struct
grpc_auth_property_iterator;
46
47
namespace
grpc
{
48
class
SecureAuthContext;
49
50
typedef
std::pair<grpc::string_ref, grpc::string_ref>
AuthProperty
;
51
52
class
AuthPropertyIterator
53
:
public
std::iterator<std::input_iterator_tag, const AuthProperty> {
54
public
:
55
~AuthPropertyIterator
();
56
AuthPropertyIterator
&
operator++
();
57
AuthPropertyIterator
operator++
(
int
);
58
bool
operator==
(
const
AuthPropertyIterator
& rhs)
const
;
59
bool
operator!=
(
const
AuthPropertyIterator
& rhs)
const
;
60
const
AuthProperty
operator*
();
61
62
protected
:
63
AuthPropertyIterator
();
64
AuthPropertyIterator
(
const
grpc_auth_property* property,
65
const
grpc_auth_property_iterator* iter);
66
67
private
:
68
friend
class
SecureAuthContext
;
69
const
grpc_auth_property* property_;
70
// The following items form a grpc_auth_property_iterator.
71
const
grpc_auth_context* ctx_;
72
size_t
index_;
73
const
char
* name_;
74
};
75
80
class
AuthContext
{
81
public
:
82
virtual
~AuthContext
() {}
83
85
virtual
bool
IsPeerAuthenticated()
const
= 0;
86
91
virtual
std::vector<grpc::string_ref> GetPeerIdentity()
const
= 0;
92
virtual
grpc::string
GetPeerIdentityPropertyName()
const
= 0;
93
95
virtual
std::vector<grpc::string_ref> FindPropertyValues(
96
const
grpc::string
& name)
const
= 0;
97
99
virtual
AuthPropertyIterator
begin()
const
= 0;
100
virtual
AuthPropertyIterator
end()
const
= 0;
101
102
// Mutation functions: should only be used by an AuthMetadataProcessor.
103
virtual
void
AddProperty(
const
grpc::string
& key,
104
const
grpc::string_ref
& value) = 0;
105
virtual
bool
SetPeerIdentityPropertyName(
const
grpc::string
& name) = 0;
106
};
107
108
}
// namespace grpc
109
110
#endif // GRPCXX_IMPL_CODEGEN_SECURITY_AUTH_CONTEXT_H
grpc::AuthProperty
std::pair< grpc::string_ref, grpc::string_ref > AuthProperty
Definition:
auth_context.h:48
grpc::string
std::string string
Definition:
config.h:118
grpc::AuthContext
Class encapsulating the Authentication Information.
Definition:
auth_context.h:80
grpc::AuthPropertyIterator::AuthPropertyIterator
AuthPropertyIterator()
grpc
Definition:
alarm.h:48
grpc::AuthPropertyIterator::operator!=
bool operator!=(const AuthPropertyIterator &rhs) const
grpc::AuthPropertyIterator::operator*
const AuthProperty operator*()
grpc::AuthContext::~AuthContext
virtual ~AuthContext()
Definition:
auth_context.h:82
grpc::AuthPropertyIterator::operator==
bool operator==(const AuthPropertyIterator &rhs) const
grpc::AuthPropertyIterator::operator++
AuthPropertyIterator & operator++()
grpc::string_ref
This class is a non owning reference to a string.
Definition:
string_ref.h:56
config.h
grpc::AuthPropertyIterator
Definition:
auth_context.h:52
string_ref.h
grpc::AuthPropertyIterator::~AuthPropertyIterator
~AuthPropertyIterator()
grpc::AuthPropertyIterator::SecureAuthContext
friend class SecureAuthContext
Definition:
auth_context.h:68
Generated on Thu Aug 18 2016 21:34:58 for GRPC C++ by
1.8.11