xrootd
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations
XrdAccAuthorize.hh File Reference
#include "XrdAcc/XrdAccPrivs.hh"
Include dependency graph for XrdAccAuthorize.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XrdAccAuthorize
 

Typedefs

typedef XrdAccAuthorize *(* XrdAccAuthorizeObject_t) (XrdSysLogger *lp, const char *cfn, const char *parm)
 
typedef XrdAccAuthorize *(* XrdAccAuthorizeObject2_t) (XrdSysLogger *lp, const char *cfn, const char *parm, XrdOucEnv *envP)
 
typedef XrdAccAuthorize *(* XrdAccAuthorizeObjAdd_t) (XrdSysLogger *lp, const char *cfn, const char *parm, XrdOucEnv *envP, XrdAccAuthorize *accP)
 

Enumerations

enum  Access_Operation {
  AOP_Any = 0 , AOP_Chmod = 1 , AOP_Chown = 2 , AOP_Create = 3 ,
  AOP_Delete = 4 , AOP_Insert = 5 , AOP_Lock = 6 , AOP_Mkdir = 7 ,
  AOP_Read = 8 , AOP_Readdir = 9 , AOP_Rename = 10 , AOP_Stat = 11 ,
  AOP_Update = 12 , AOP_Excl_Create = 13 , AOP_Excl_Insert = 14 , AOP_LastOp = 14
}
 The following are supported operations. More...
 

Typedef Documentation

◆ XrdAccAuthorizeObjAdd_t

typedef XrdAccAuthorize *(* XrdAccAuthorizeObjAdd_t) (XrdSysLogger *lp, const char *cfn, const char *parm, XrdOucEnv *envP, XrdAccAuthorize *accP)

extern "C" XrdAccAuthorize *XrdAccAuthorizeObject2(XrdSysLogger *lp, const char *cfn, const char *parm, XrdOucEnv *envP) {...} Add an authorization object as a wrapper to the existing object.

XrdAccAuthorizeObjAdd() is an extern "C" function that is called to obtain an instance of the auth object that should wrap the existing object. The wrapper becomes the actual authorization object. The wrapper must be in the plug-in shared library, it is passed additional parameters. All the following extern symbols must be defined at file level!

Parameters
lp-> XrdSysLogger to be tied to an XrdSysError object for messages
cfn-> The name of the configuration file
parm-> Parameters specified on the authlib directive. If none it is zero.
envP-> Environmental information and may be nil.
accP-> to the existing authorization object.
Returns
Success: A pointer to the authorization object. Failure: Null pointer which causes initialization to fail.

◆ XrdAccAuthorizeObject2_t

typedef XrdAccAuthorize *(* XrdAccAuthorizeObject2_t) (XrdSysLogger *lp, const char *cfn, const char *parm, XrdOucEnv *envP)

extern "C" XrdAccAuthorize *XrdAccAuthorizeObject(XrdSysLogger *lp, const char *cfn, const char *parm) {...}

◆ XrdAccAuthorizeObject_t

typedef XrdAccAuthorize *(* XrdAccAuthorizeObject_t) (XrdSysLogger *lp, const char *cfn, const char *parm)

Obtain an authorization object.

XrdAccAuthorizeObject() is an extern "C" function that is called to obtain an instance of the auth object that will be used for all subsequent authorization decisions. It must be defined in the plug-in shared library. A second version which is used preferentially if it exists should be used if accessto theenvironmental pointer s needed. All the following extern symbols must be defined at file level!

Parameters
lp-> XrdSysLogger to be tied to an XrdSysError object for messages
cfn-> The name of the configuration file
parm-> Parameters specified on the authlib directive. If none it is zero.
envP-> Pointer to environment only available for version 2.
Returns
Success: A pointer to the authorization object. Failure: Null pointer which causes initialization to fail.

Enumeration Type Documentation

◆ Access_Operation

The following are supported operations.

Enumerator
AOP_Any 

Special for getting privs.

AOP_Chmod 

chmod()

AOP_Chown 

chown()

AOP_Create 

open() with create

AOP_Delete 

rm() or rmdir()

AOP_Insert 

mv() for target

AOP_Lock 

n/a

AOP_Mkdir 

mkdir()

AOP_Read 

open() r/o, prepare()

AOP_Readdir 

opendir()

AOP_Rename 

mv() for source

AOP_Stat 

exists(), stat()

AOP_Update 

open() r/w or append

AOP_Excl_Create 

open() with O_EXCL|O_CREAT

AOP_Excl_Insert 

mv() where destination doesn't exist.

AOP_LastOp