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 ();
89 const
Acl& acl, const struct ::stat& stat,
96 std::
string voFromDn(const std::
string& mapfile, const std::
string& dn);
113 const std::
string& passwd, time_t lifetime,
123 const std::
string& pfn, const std::
string& passwd,
Namespace for the dmlite C++ API.
Definition: authn.h:15
TokenResult
Possible outputs for validateToken.
Definition: security.h:20
@ kTokenExpired
Definition: security.h:24
@ kTokenInvalid
Definition: security.h:23
@ kTokenInternalError
Definition: security.h:26
@ kTokenOK
Definition: security.h:21
@ kTokenInvalidMode
Definition: security.h:25
@ kTokenMalformed
Definition: security.h:22
int checkPermissions(const SecurityContext *context, const Acl &acl, const struct ::stat &stat, mode_t mode)
bool hasGroup(const std::vector< GroupInfo > &groups, gid_t gid)
std::string voFromRole(const std::string &role)
std::string voFromDn(const std::string &mapfile, const std::string &dn)
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)
std::string generateToken(const std::string &id, const std::string &pfn, const std::string &passwd, time_t lifetime, bool write=false)
ACL Entry.
Definition: security.h:30
static const uint8_t kGroup
Definition: security.h:35
bool operator!=(const AclEntry &) const
static const uint8_t kUser
Definition: security.h:33
bool operator==(const AclEntry &) const
static const uint8_t kDefault
Definition: security.h:38
static const uint8_t kOther
Definition: security.h:37
bool operator>(const AclEntry &) const
static const uint8_t kGroupObj
Definition: security.h:34
static const uint8_t kMask
Definition: security.h:36
uint8_t perm
Definition: security.h:41
bool operator<(const AclEntry &) const
static const uint8_t kUserObj
ACL Type possible values.
Definition: security.h:32
uint32_t id
Definition: security.h:42
uint8_t type
Definition: security.h:40
Definition: security.h:51
std::string serialize(void) const
int has(uint8_t type) const
void validate(void) const
Security context. To be created by the Authn.
Definition: authn.h:69