dmlite  0.6
Namespaces | Classes | Enumerations | Functions | Variables
dmlite Namespace Reference

Namespace for the dmlite C++ API. More...

Namespaces

 checksums
 

Classes

struct  SecurityCredentials
 Security credentials. To be filled by the front-end. More...
 
struct  UserInfo
 
struct  GroupInfo
 
struct  SecurityContext
 Security context. To be created by the Authn. More...
 
class  Authn
 
class  AuthnFactory
 AuthnFactory. More...
 
class  BaseInterface
 Base class for interfaces. More...
 
class  BaseFactory
 Base class for factories. More...
 
struct  Directory
 Typedef for directories. More...
 
class  Catalog
 Interface for Catalog (Namespaces). More...
 
class  CatalogFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
 
class  PluginManager
 CatalogInterface can only be instantiated through this class. More...
 
class  StackInstance
 
struct  PluginIdCard
 Joint between plugins and plugin-manager. More...
 
class  DummyCatalog
 
class  DummyPoolManager
 
class  DmException
 Base exception class. More...
 
struct  IDirectory
 Typedef for directories. More...
 
struct  ExtendedStat
 File/directory metadata. More...
 
struct  SymLink
 Symbolic link. More...
 
struct  Replica
 File replica metadata. More...
 
class  INode
 
class  INodeFactory
 INodeFactory. More...
 
class  IOHandler
 IO interface. More...
 
class  IODriver
 IO Driver. More...
 
class  IODriverFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
 
struct  Chunk
 Represents a chunk of a file. More...
 
struct  Location
 Represent the complete location of a file. More...
 
class  PoolHandler
 Handler for a pool. Works similary to a file handler. More...
 
class  PoolDriver
 Interface for a pool driver. More...
 
class  PoolDriverFactory
 PoolDriver factory. More...
 
struct  Pool
 Internal interface for handling pool metadata. More...
 
class  PoolManager
 Interface for pool types. More...
 
class  PoolManagerFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
 
struct  Extensible
 Helpful typedef for KeyValue containers. More...
 
class  PoolElementFactory
 
class  PoolContainer
 Implements a pool of whichever resource. More...
 
class  PoolGrabber
 Convenience class that releases a resource on destruction. More...
 
struct  AclEntry
 ACL Entry. More...
 
struct  Acl
 
struct  Url
 
class  BuiltInAuthn
 
class  BuiltInAuthnFactory
 
struct  BuiltInDir
 
class  BuiltInCatalog
 
class  BuiltInCatalogFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
 

Enumerations

enum  TokenResult {
  kTokenOK = 0, kTokenMalformed, kTokenInvalid, kTokenExpired,
  kTokenInvalidMode, kTokenInternalError
}
 Possible outputs for validateToken. More...
 

Functions

bool hasGroup (const std::vector< GroupInfo > &groups, gid_t gid)
 
int checkPermissions (const SecurityContext *context, const Acl &acl, const struct::stat &stat, mode_t mode)
 
std::string voFromDn (const std::string &mapfile, const std::string &dn)
 
std::string voFromRole (const std::string &role)
 
std::string getCertificateSubject (const std::string &path)
 Get the subject from the certificate. More...
 
std::string generateToken (const std::string &id, const std::string &pfn, const std::string &passwd, time_t lifetime, bool write=false)
 
TokenResult validateToken (const std::string &token, const std::string &id, const std::string &pfn, const std::string &passwd, bool write=false)
 

Variables

const unsigned API_VERSION = 20121218
 API Version. More...
 
Logger::bitmask stackinstancelogmask
 
Logger::component stackinstancelogname
 

Detailed Description

Namespace for the dmlite C++ API.

Enumeration Type Documentation

Possible outputs for validateToken.

Enumerator
kTokenOK 
kTokenMalformed 
kTokenInvalid 
kTokenExpired 
kTokenInvalidMode 
kTokenInternalError 

Function Documentation

int dmlite::checkPermissions ( const SecurityContext *  context,
const Acl &  acl,
const struct::stat &  stat,
mode_t  mode 
)

Check if a specific user has the demanded rights.

Note
This works using uid and gid, so it will only work with plug-ins that provide this metadata (as unsigned!!).
Parameters
contextThe security context.
aclThe Access Control list.
statA struct stat which mode will be checked.
modeThe mode to be checked.
Returns
0 if the mode is allowed, 1 if not.
std::string dmlite::generateToken ( const std::string &  id,
const std::string &  pfn,
const std::string &  passwd,
time_t  lifetime,
bool  write = false 
)

Generate a token.

Parameters
idA unique ID of the user. May be the DN, the IP...
pfnThe PFN we want a token for.
passwdThe password to be used.
lifetimeToken lifetime.
writeIf true, this will be a token for write access.
std::string dmlite::getCertificateSubject ( const std::string &  path)

Get the subject from the certificate.

bool dmlite::hasGroup ( const std::vector< GroupInfo > &  groups,
gid_t  gid 
)

Check if the group vector contains the given gid.

Parameters
groupsThe GroupInfo vector.
gidThe gid to look for.
Returns
true if the vector contains the given gid. false otherwise.
TokenResult dmlite::validateToken ( const std::string &  token,
const std::string &  id,
const std::string &  pfn,
const std::string &  passwd,
bool  write = false 
)

Validate a token. It must have been previously generated by generateToken.

Parameters
tokenThe token to validate.
idThe SAME unique ID used to generate the token.
pfnThe that is being accessed.
passwdThe password that must be used to generate the token.
writeIf true, write access will be validated.
std::string dmlite::voFromDn ( const std::string &  mapfile,
const std::string &  dn 
)

Get the VO from a full DN.

Parameters
mapfileThe file that contains the user => group mapping.
dnThe DN to parse.
Returns
The mapped VO.
std::string dmlite::voFromRole ( const std::string &  role)

Get the VO from a role.

Parameters
roleThe role.
Returns
The VO.

Variable Documentation

const unsigned dmlite::API_VERSION = 20121218

API Version.

Logger::bitmask dmlite::stackinstancelogmask
Logger::component dmlite::stackinstancelogname