00001 #ifndef __XRDSECSERVER_H__
00002 #define __XRDSECSERVER_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "XrdSys/XrdSysError.hh"
00034 #include "XrdSys/XrdSysLogger.hh"
00035 #include "XrdOuc/XrdOucStream.hh"
00036 #include "XrdSec/XrdSecInterface.hh"
00037 #include "XrdSec/XrdSecPManager.hh"
00038
00039 class XrdSecPinInfo;
00040 class XrdSecProtBind;
00041 class XrdSecSecEntityPin;
00042 class XrdOucTrace;
00043 class XrdNetAddrInfo;
00044
00045 class XrdSecServer : XrdSecService
00046 {
00047 public:
00048
00049 const char *getParms(int &size, XrdNetAddrInfo *endPoint=0);
00050
00051
00052
00053
00054 XrdSecProtocol *getProtocol(const char *host,
00055 XrdNetAddrInfo &endPoint,
00056 const XrdSecCredentials *cred,
00057 XrdOucErrInfo &einfo);
00058
00059 bool PostProcess(XrdSecEntity &entity,
00060 XrdOucErrInfo &einfo);
00061
00062 int Configure(const char *cfn);
00063
00064 const char *protTLS() {return PManager.protTLS();}
00065
00066 XrdSecServer(XrdSysLogger *lp);
00067 ~XrdSecServer() {}
00068
00069 private:
00070
00071 static XrdSecPManager PManager;
00072
00073 union {XrdSecPinInfo *pinInfo; XrdSecEntityPin *secEntityPin;};
00074
00075 XrdSysError eDest;
00076 const char *configFN;
00077 XrdOucTrace *SecTrace;
00078 XrdSecProtBind *bpFirst;
00079 XrdSecProtBind *bpLast;
00080 XrdSecProtBind *bpDefault;
00081 char *pidList;
00082 char *SToken;
00083 char *STBuff;
00084 int STBlen;
00085 bool Enforce;
00086 bool implauth;
00087
00088 int add2token(XrdSysError &erp,char *,char **,int &,XrdSecPMask_t &);
00089 int ConfigFile(const char *cfn);
00090 int ConfigXeq(char *var, XrdOucStream &Config, XrdSysError &Eroute);
00091 int ProtBind_Complete(XrdSysError &Eroute);
00092 int xenlib(XrdOucStream &Config, XrdSysError &Eroute);
00093 int xlevel(XrdOucStream &Config, XrdSysError &Eroute);
00094 int xpbind(XrdOucStream &Config, XrdSysError &Eroute);
00095 int xpparm(XrdOucStream &Config, XrdSysError &Eroute);
00096 int xprot(XrdOucStream &Config, XrdSysError &Eroute);
00097 int xtrace(XrdOucStream &Config, XrdSysError &Eroute);
00098 };
00099 #endif