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";
52 class Acl:
public std::vector<AclEntry> {
57 explicit
Acl(const std::
string&) throw ();
65 Acl(const
Acl& parent, uid_t uid, gid_t gid, mode_t cmode, mode_t* fmode) throw ();
69 int has(uint8_t type) const throw ();
90 const
Acl& acl, const struct ::stat& stat,
97 std::
string voFromDn(const std::
string& mapfile, const std::
string& dn);
114 const std::
string& passwd, time_t lifetime,
124 const std::
string& pfn, const std::
string& passwd,
ACL Entry.
Definition security.h:30
static const uint8_t kGroup
Definition security.h:36
bool operator!=(const AclEntry &) const
static const uint8_t kUser
Definition security.h:34
bool operator==(const AclEntry &) const
static const uint8_t kDefault
Definition security.h:39
static const uint8_t kOther
Definition security.h:38
bool operator>(const AclEntry &) const
static const uint8_t kGroupObj
Definition security.h:35
static const uint8_t kMask
Definition security.h:37
uint8_t perm
Definition security.h:42
bool operator<(const AclEntry &) const
static const uint8_t kUserObj
ACL Type possible values.
Definition security.h:33
uint32_t id
Definition security.h:43
uint8_t type
Definition security.h:41
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:73
Namespace for the dmlite C++ API.
Definition authn.h:16
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)