5 #ifndef DMLITE_CPP_UTILS_SECURITY_H_
6 #define DMLITE_CPP_UTILS_SECURITY_H_
13 #include "../exceptions.h"
17 static const std::string kGenericUser =
"nouser";
51 struct Acl:
public std::vector<AclEntry> {
56 explicit Acl(
const std::string&)
throw ();
64 Acl(
const Acl& parent, uid_t uid, gid_t gid, mode_t cmode, mode_t* fmode)
throw ();
68 int has(uint8_t type)
const throw ();
70 std::string
serialize(
void)
const throw ();
78 bool hasGroup(
const std::vector<GroupInfo>& groups, gid_t gid);
89 const Acl& acl,
const struct ::stat& stat,
96 std::string
voFromDn(
const std::string& mapfile,
const std::string& dn);
101 std::string
voFromRole(
const std::string& role);
112 std::string
generateToken(
const std::string&
id,
const std::string& pfn,
113 const std::string& passwd, time_t lifetime,
123 const std::string& pfn,
const std::string& passwd,
128 #endif // DMLITE_CPP_UTILS_SECURITY_H_
Definition: security.h:22
uint8_t type
Definition: security.h:40
std::string voFromDn(const std::string &mapfile, const std::string &dn)
bool operator>(const AclEntry &) const
uint32_t id
Definition: security.h:42
Definition: security.h:51
std::string getCertificateSubject(const std::string &path)
Get the subject from the certificate.
TokenResult validateToken(const std::string &token, const std::string &id, const std::string &pfn, const std::string &passwd, bool write=false)
static const uint8_t kUser
Definition: security.h:33
Security context. To be created by the Authn.
Definition: authn.h:64
Base exception class.
Definition: exceptions.h:17
static const uint8_t kGroupObj
Definition: security.h:34
Definition: security.h:24
void validate(void) const
bool operator<(const AclEntry &) const
Definition: security.h:23
static const uint8_t kDefault
Definition: security.h:38
static const uint8_t kOther
Definition: security.h:37
int has(uint8_t type) const
Definition: security.h:21
bool hasGroup(const std::vector< GroupInfo > &groups, gid_t gid)
std::string generateToken(const std::string &id, const std::string &pfn, const std::string &passwd, time_t lifetime, bool write=false)
Definition: security.h:26
TokenResult
Possible outputs for validateToken.
Definition: security.h:20
ACL Entry.
Definition: security.h:30
bool operator!=(const AclEntry &) const
uint8_t perm
Definition: security.h:41
std::string voFromRole(const std::string &role)
static const uint8_t kGroup
Definition: security.h:35
std::string serialize(void) const
static const uint8_t kMask
Definition: security.h:36
static const uint8_t kUserObj
ACL Type possible values.
Definition: security.h:32
int checkPermissions(const SecurityContext *context, const Acl &acl, const struct::stat &stat, mode_t mode)
Definition: security.h:25
bool operator==(const AclEntry &) const