Apache Mesos
authorization.hpp
Go to the documentation of this file.
1 // Licensed to the Apache Software Foundation (ASF) under one
2 // or more contributor license agreements. See the NOTICE file
3 // distributed with this work for additional information
4 // regarding copyright ownership. The ASF licenses this file
5 // to you under the Apache License, Version 2.0 (the
6 // "License"); you may not use this file except in compliance
7 // with the License. You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 
17 #ifndef __COMMON_AUTHORIZATION_HPP__
18 #define __COMMON_AUTHORIZATION_HPP__
19 
20 #include <vector>
21 
23 
25 
26 #include <process/future.hpp>
27 #include <process/http.hpp>
28 
29 #include <stout/hashset.hpp>
30 #include <stout/option.hpp>
31 
32 namespace mesos {
33 namespace authorization {
34 
36 
37 // Collects authorization results. Any discarded or failed future
38 // results in a failure; any false future results in 'false'.
40  const std::vector<process::Future<bool>>& authorizations);
41 
42 // Creates a `Subject` for authorization purposes when given an
43 // authenticated `Principal`. This function accepts and returns an
44 // `Option` to make call sites cleaner, since it is possible that
45 // `principal` will be `NONE`.
48 
50  const Option<Authorizer*>& authorizer,
52 
55 
56 } // namespace authorization {
57 } // namespace mesos {
58 
59 #endif // __COMMON_AUTHORIZATION_HPP__
Definition: option.hpp:29
process::Future< bool > collectAuthorizations(const std::vector< process::Future< bool >> &authorizations)
Definition: hashmap.hpp:38
hashset< std::string > AUTHORIZABLE_ENDPOINTS
This interface is used to enable an identity service or any other back end to check authorization pol...
Definition: authorizer.hpp:268
Definition: agent.hpp:25
const process::http::authorization::AuthorizationCallbacks createAuthorizationCallbacks(Authorizer *authorizer)
process::Future< bool > authorizeLogAccess(const Option< Authorizer * > &authorizer, const Option< process::http::authentication::Principal > &principal)
const Option< Subject > createSubject(const Option< process::http::authentication::Principal > &principal)