22#include "RConfigure.h"
52 Create(host, user, nmeth, authmeth, details);
65 Create(host, user, nmeth, authmeth, details);
76 const char *details) :
TObject()
78 Create(host, user, 1, &authmeth, (
char **)&details);
89 Create(host, user, 1, &authmeth, (
char **)&details);
101 Int_t *authmeth,
char **details)
124 else if (srv ==
"1" || srv.
BeginsWith(
"root"))
126 else if (srv ==
"2" || srv.
BeginsWith(
"proof"))
153 for (i = 0; i <
kMAXSEC; i++) {
169 if (details && details[i] && strlen(details[i]) > 0) {
199 char *tmp = strdup(asstring);
210 fNmet =
TString((
const char *)strtok(0,
" "));
224 sscanf(det.
Data(),
"%10s",cmet);
225 Int_t met = atoi(cmet);
226 if (met > -1 && met <
kMAXSEC) {
228 while (det.
First(
' ') == 0)
280 if (meth < 0 || meth >=
kMAXSEC)
return;
292 if (details && strlen(details) > 0) {
376 Info(
"GetDetails",
" %d: returning fDetails[%d]: %s",
380 static const char *empty =
" ";
407 if (details && strlen(details) > 0) {
426 char srvnam[5][8] = {
"any",
"sockd",
"rootd",
"proofd",
"???" };
432 "%s +------------------------------------------------------------------+",proc);
433 Info(
"Print",
"%s + Host:%s - srv:%s - User:%s - # of available methods:%d",
437 Info(
"Print",
"%s + Method: %d (%s) Ok:%d Ko:%d Dets:%s", proc,
442 "%s +------------------------------------------------------------------+",proc);
450 Info(
"PrintEstablished",
451 "+------------------------------------------------------------------------------+");
452 Info(
"PrintEstablished",
"+ Host:%s - Number of active sec contexts: %d",
466 Info(
"PrintEstablished",
467 "+------------------------------------------------------------------------------+");
484 for ( ; j < nmet; j++) {
492 }
else if (fmet[j] >= 0 && fmet[j] <
kMAXSEC) {
493 tMethods[j] = fmet[j];
497 tDetails[j] = (
const char *)tmp;
500 Warning(
"ReOrder",
"Method id out of range (%d) - skipping",fmet[j]);
505 Int_t k = nmet, i = 0;
567 for (i = 0; i < tNumMethods; i++) {
675 if (details && strlen(details) > 0) {
725 const char *details,
const char *token,
729 token, expdate, sctx, key);
char * Form(const char *fmt,...)
R__EXTERN TSystem * gSystem
static char * GetDefaultDetails(Int_t method, Int_t opt, const char *user)
Determine default authentication details for method 'sec' and user 'usr'.
static const char * GetAuthMethod(Int_t idx)
Static method returning the method corresponding to idx.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
const char * GetUser() const
void Reset()
Remove all methods, leaving Active status and list of associted TSceContexts unchanged.
const char * GetHost() const
TRootSecContext * CreateSecContext(const char *user, const char *host, Int_t meth, Int_t offset, const char *details, const char *token, TDatime expdate=kROOTTZERO, void *ctx=0, Int_t key=-1)
Create a Security context and add it to local list Return pointer to it to be stored in TAuthenticate...
void SetDetails(Int_t level, const char *details)
Set authentication details for specified level.
virtual ~THostAuth()
The dtor.
void SetFirst(Int_t level)
Set 'method' to be the first used (if in the list ...).
virtual void Print(Option_t *option="") const
Print object content.
TString fDetails[kMAXSEC]
void ReOrder(Int_t nmet, Int_t *fmet)
Reorder nmet methods according fmet[nmet].
THostAuth()
Default constructor.
void RemoveMethod(Int_t level)
Remove method 'meth' from the list, if there ...
void AddMethod(Int_t level, const char *details=0)
Add method to the list.
void CountFailure(Int_t level)
Count failures for 'method'.
Int_t GetSuccess(Int_t idx) const
Int_t GetMethod(Int_t idx) const
void Create(const char *host, const char *user, Int_t nmeth=0, Int_t *authmeth=0, char **details=0)
Create hostauth object.
void AsString(TString &out) const
Return a static string with all info in a serialized form.
Bool_t HasMethod(Int_t level, Int_t *pos=0)
Return kTRUE if method 'level' is in the list.
TList * Established() const
void AddFirst(Int_t level, const char *details=0)
Add new method in first position If already in the list, set as first method 'level' with authenticat...
void Update(THostAuth *ha)
Update info with the one in ha Remaining methods, if any, get lower priority.
const char * GetDetails(Int_t level)
Return authentication details for specified level or "" if the specified level does not exist for thi...
void SetLast(Int_t level)
Set 'method' to be the last used (if in the list ...).
Int_t GetFailure(Int_t idx) const
const char * GetDetailsByIdx(Int_t idx) const
void PrintEstablished() const
Print info about established authentication vis-a-vis of this Host.
void CountSuccess(Int_t level)
Count successes for 'method'.
This class represents an Internet Protocol (IP) address.
const char * GetHostName() const
virtual void Add(TObject *obj)
Mother of all ROOT objects.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Bool_t IsActive() const
Check remote OffSet and expiring Date.
virtual void Print(Option_t *option="F") const
If opt is "F" (default) print object content.
Ssiz_t First(char c) const
Find first occurrence of a character c.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void Resize(Ssiz_t n)
Resize the string. Truncate or add blanks as necessary.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Remove(Ssiz_t pos)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual const char * Getenv(const char *env)
Get environment variable.
virtual TInetAddress GetHostByName(const char *server)
Get Internet Protocol (IP) address of host.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
This class represents a WWW compatible URL.
const char * GetProtocol() const