xrootd
|
Public Member Functions | |
int | Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0) |
XrdSecCredentials * | getCredentials (XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0) |
XrdSecProtocolkrb5 (const char *KP, const char *hname, const struct sockaddr *ipadd) | |
void | Delete () |
Static Public Member Functions | |
static char * | getPrincipal () |
static int | Init (XrdOucErrInfo *einfo, char *KP=0, char *kfn=0) |
static void | setOpts (int opts) |
static void | setClientOpts (int opts) |
static void | setParms (char *param) |
static void | setExpFile (char *expfile) |
Private Member Functions | |
~XrdSecProtocolkrb5 () | |
int | exp_krbTkn (XrdSecCredentials *cred, XrdOucErrInfo *erp) |
int | get_krbFwdCreds (char *KP, krb5_data *outdata) |
Static Private Member Functions | |
static int | Fatal (XrdOucErrInfo *erp, int rc, const char *msg1, char *KP=0, int krc=0) |
static int | get_krbCreds (char *KP, krb5_creds **krb_creds) |
Private Attributes | |
struct sockaddr | hostaddr |
char | CName [256] |
char * | Service |
char | Step |
krb5_auth_context | AuthContext |
krb5_auth_context | AuthClientContext |
krb5_ticket * | Ticket |
krb5_creds * | Creds |
Static Private Attributes | |
static XrdSysMutex | krbContext |
static XrdSysMutex | krbClientContext |
static int | options = 0 |
static int | client_options = 0 |
static krb5_context | krb_context |
static krb5_context | krb_client_context |
static krb5_ccache | krb_client_ccache |
static krb5_ccache | krb_ccache |
static krb5_keytab | krb_keytab = NULL |
static uid_t | krb_kt_uid = 0 |
static gid_t | krb_kt_gid = 0 |
static krb5_principal | krb_principal |
static char * | Principal = 0 |
static char * | Parms = 0 |
static char | ExpFile [XrdSecMAXPATHLEN] = "/tmp/krb5cc_<uid>" |
Friends | |
class | XrdSecProtocolDummy |
XrdSecProtocolkrb5::XrdSecProtocolkrb5 | ( | const char * | KP, |
const char * | hname, | ||
const struct sockaddr * | ipadd | ||
) | [inline] |
References AuthClientContext, AuthContext, CName, Creds, XrdSecProtocol::Entity, XrdSecEntity::host, hostaddr, XrdSecEntity::name, Service, Step, and Ticket.
XrdSecProtocolkrb5::~XrdSecProtocolkrb5 | ( | ) | [inline, private] |
int XrdSecProtocolkrb5::Authenticate | ( | XrdSecCredentials * | cred, |
XrdSecParameters ** | parms, | ||
XrdOucErrInfo * | einfo = 0 |
||
) | [virtual] |
Implements XrdSecProtocol.
References AuthContext, XrdSecBuffer::buffer, CLDBG, CName, emsg(), XrdSecProtocol::Entity, exp_krbTkn(), Fatal(), hostaddr, krb_context, krb_keytab, krb_kt_gid, krb_kt_uid, krb_principal, krbContext, XrdSysMutex::Lock(), options, Principal, XrdSecEntity::prot, XrdSecBuffer::size, snprintf, Step, Ticket, XrdSysMutex::UnLock(), XrdSysPrivGuard::Valid(), XrdSecEXPTKN, XrdSecNOIPCHK, XrdSecPROTOIDENT, and XrdSecPROTOIDLEN.
void XrdSecProtocolkrb5::Delete | ( | ) | [virtual] |
Implements XrdSecProtocol.
References AuthClientContext, AuthContext, Creds, XrdSecProtocol::Entity, XrdSecEntity::host, krb_client_context, krb_context, Parms, Service, and Ticket.
int XrdSecProtocolkrb5::exp_krbTkn | ( | XrdSecCredentials * | cred, |
XrdOucErrInfo * | erp | ||
) | [private] |
References AuthContext, XrdSecBuffer::buffer, CName, ExpFile, Fatal(), hostaddr, krb_context, krb_principal, krbContext, XrdSysMutex::Lock(), XrdSecBuffer::size, Ticket, XrdSysPrivGuard::Valid(), XrdSecMAXPATHLEN, and XrdSecPROTOIDLEN.
Referenced by Authenticate().
int XrdSecProtocolkrb5::Fatal | ( | XrdOucErrInfo * | erp, |
int | rc, | ||
const char * | msg1, | ||
char * | KP = 0 , |
||
int | krc = 0 |
||
) | [static, private] |
References krb_etxt, and XrdOucErrInfo::setErrInfo().
Referenced by Authenticate(), exp_krbTkn(), getCredentials(), and Init().
int XrdSecProtocolkrb5::get_krbCreds | ( | char * | KP, |
krb5_creds ** | krb_creds | ||
) | [static, private] |
References CLDBG, krb_client_ccache, krb_client_context, and krb_etxt.
Referenced by getCredentials().
int XrdSecProtocolkrb5::get_krbFwdCreds | ( | char * | KP, |
krb5_data * | outdata | ||
) | [private] |
References AuthClientContext, CLDBG, krb_client_ccache, krb_client_context, and krb_etxt.
Referenced by getCredentials().
XrdSecCredentials * XrdSecProtocolkrb5::getCredentials | ( | XrdSecParameters * | parm = 0 , |
XrdOucErrInfo * | einfo = 0 |
||
) | [virtual] |
Implements XrdSecProtocol.
References AuthClientContext, CLDBG, client_options, CLPRT, Creds, Fatal(), get_krbCreds(), get_krbFwdCreds(), krb_client_ccache, krb_client_context, krbClientContext, XrdSysMutex::Lock(), Service, Step, XrdSysMutex::UnLock(), XrdSecEXPTKN, XrdSecINITTKN, XrdSecPROTOIDENT, and XrdSecPROTOIDLEN.
static char* XrdSecProtocolkrb5::getPrincipal | ( | ) | [inline, static] |
References Principal.
Referenced by XrdSecProtocolkrb5Init().
int XrdSecProtocolkrb5::Init | ( | XrdOucErrInfo * | einfo, |
char * | KP = 0 , |
||
char * | kfn = 0 |
||
) | [static] |
References Fatal(), krb_ccache, krb_client_ccache, krb_client_context, krb_context, krb_keytab, krb_kt_gid, krb_kt_uid, krb_principal, Principal, snprintf, and stat().
Referenced by XrdSecProtocolkrb5Init().
static void XrdSecProtocolkrb5::setClientOpts | ( | int | opts | ) | [inline, static] |
References client_options, and opts.
Referenced by XrdSecProtocolkrb5Init().
static void XrdSecProtocolkrb5::setExpFile | ( | char * | expfile | ) | [inline, static] |
References ExpFile, and XrdSecMAXPATHLEN.
Referenced by XrdSecProtocolkrb5Init().
static void XrdSecProtocolkrb5::setOpts | ( | int | opts | ) | [inline, static] |
Referenced by XrdSecProtocolkrb5Init().
static void XrdSecProtocolkrb5::setParms | ( | char * | param | ) | [inline, static] |
References Parms.
Referenced by XrdSecProtocolkrb5Init().
friend class XrdSecProtocolDummy [friend] |
krb5_auth_context XrdSecProtocolkrb5::AuthClientContext [private] |
Referenced by Delete(), get_krbFwdCreds(), getCredentials(), and XrdSecProtocolkrb5().
krb5_auth_context XrdSecProtocolkrb5::AuthContext [private] |
Referenced by Authenticate(), Delete(), exp_krbTkn(), and XrdSecProtocolkrb5().
int XrdSecProtocolkrb5::client_options = 0 [static, private] |
Referenced by getCredentials(), and setClientOpts().
char XrdSecProtocolkrb5::CName[256] [private] |
Referenced by Authenticate(), exp_krbTkn(), and XrdSecProtocolkrb5().
krb5_creds* XrdSecProtocolkrb5::Creds [private] |
Referenced by Delete(), getCredentials(), and XrdSecProtocolkrb5().
char XrdSecProtocolkrb5::ExpFile = "/tmp/krb5cc_<uid>" [static, private] |
Referenced by exp_krbTkn(), and setExpFile().
struct sockaddr XrdSecProtocolkrb5::hostaddr [private] |
Referenced by Authenticate(), exp_krbTkn(), and XrdSecProtocolkrb5().
krb5_ccache XrdSecProtocolkrb5::krb_ccache [static, private] |
Referenced by Init().
krb5_ccache XrdSecProtocolkrb5::krb_client_ccache [static, private] |
Referenced by get_krbCreds(), get_krbFwdCreds(), getCredentials(), and Init().
krb5_context XrdSecProtocolkrb5::krb_client_context [static, private] |
Referenced by Delete(), get_krbCreds(), get_krbFwdCreds(), getCredentials(), and Init().
krb5_context XrdSecProtocolkrb5::krb_context [static, private] |
Referenced by Authenticate(), Delete(), exp_krbTkn(), and Init().
krb5_keytab XrdSecProtocolkrb5::krb_keytab = NULL [static, private] |
Referenced by Authenticate(), and Init().
gid_t XrdSecProtocolkrb5::krb_kt_gid = 0 [static, private] |
Referenced by Authenticate(), and Init().
uid_t XrdSecProtocolkrb5::krb_kt_uid = 0 [static, private] |
Referenced by Authenticate(), and Init().
krb5_principal XrdSecProtocolkrb5::krb_principal [static, private] |
Referenced by Authenticate(), exp_krbTkn(), and Init().
XrdSysMutex XrdSecProtocolkrb5::krbClientContext [static, private] |
Referenced by getCredentials().
XrdSysMutex XrdSecProtocolkrb5::krbContext [static, private] |
Referenced by Authenticate(), and exp_krbTkn().
int XrdSecProtocolkrb5::options = 0 [static, private] |
Referenced by Authenticate(), and setOpts().
char * XrdSecProtocolkrb5::Parms = 0 [static, private] |
Referenced by Delete(), and setParms().
char * XrdSecProtocolkrb5::Principal = 0 [static, private] |
Referenced by Authenticate(), getPrincipal(), and Init().
char* XrdSecProtocolkrb5::Service [private] |
Referenced by Delete(), getCredentials(), and XrdSecProtocolkrb5().
char XrdSecProtocolkrb5::Step [private] |
Referenced by Authenticate(), getCredentials(), and XrdSecProtocolkrb5().
krb5_ticket* XrdSecProtocolkrb5::Ticket [private] |
Referenced by Authenticate(), Delete(), exp_krbTkn(), and XrdSecProtocolkrb5().