File indexing completed on 2026-10-23 09:30:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_THostAuth
0013 #define ROOT_THostAuth
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include "TObject.h"
0027 #include "TString.h"
0028 #include "TList.h"
0029 #include "TRootSecContext.h"
0030 #include "AuthConst.h"
0031
0032 #include "TSecContext.h" // for kROOTTZERO.
0033
0034 namespace ROOT::Deprecated {
0035
0036 class THostAuth : public TObject {
0037
0038 private:
0039 TString fHost;
0040 Char_t fServer;
0041 TString fUser;
0042 Int_t fNumMethods;
0043 Int_t fMethods[kMAXSEC];
0044 TString fDetails[kMAXSEC];
0045 Int_t fSuccess[kMAXSEC];
0046 Int_t fFailure[kMAXSEC];
0047 Bool_t fActive;
0048
0049 TList *fSecContexts;
0050
0051 void Create(const char *host, const char *user, Int_t nmeth = 0,
0052 Int_t *authmeth = nullptr, char **details = nullptr);
0053 public:
0054
0055 THostAuth();
0056 THostAuth(const char *host, const char *user,
0057 Int_t nmeth = 0, Int_t *authmeth = nullptr, char **details = nullptr);
0058 THostAuth(const char *host, Int_t server, const char *user,
0059 Int_t nmeth = 0, Int_t *authmeth = nullptr, char **details = nullptr);
0060 THostAuth(const char *host, const char *user, Int_t authmeth,
0061 const char *details);
0062 THostAuth(const char *host, Int_t server, const char *user, Int_t authmeth,
0063 const char *details);
0064 THostAuth(THostAuth &ha);
0065
0066 virtual ~THostAuth();
0067
0068 void AsString(TString &out) const;
0069
0070 Int_t NumMethods() const { return fNumMethods; }
0071 Int_t GetMethod(Int_t idx) const { return fMethods[idx]; }
0072 Bool_t HasMethod(Int_t level, Int_t *pos = nullptr);
0073 void AddMethod(Int_t level, const char *details = nullptr);
0074 void RemoveMethod(Int_t level);
0075 void ReOrder(Int_t nmet, Int_t *fmet);
0076 void Update(THostAuth *ha);
0077 void SetFirst(Int_t level);
0078 void AddFirst(Int_t level, const char *details = nullptr);
0079 void SetLast(Int_t level);
0080 void CountFailure(Int_t level);
0081 void CountSuccess(Int_t level);
0082 Int_t GetFailure(Int_t idx) const { return fFailure[idx]; }
0083 Int_t GetSuccess(Int_t idx) const { return fSuccess[idx]; }
0084 Bool_t IsActive() const { return fActive; }
0085 void DeActivate() { fActive = kFALSE; }
0086 void Activate() { fActive = kTRUE; }
0087 void Reset();
0088
0089 const char *GetDetails(Int_t level);
0090 const char *GetDetailsByIdx(Int_t idx) const { return fDetails[idx]; }
0091 void SetDetails(Int_t level, const char *details);
0092
0093 const char *GetHost() const { return fHost; }
0094 Int_t GetServer() const { return (Int_t)fServer; }
0095 const char *GetUser() const { return fUser; }
0096
0097 void SetHost(const char *host) { fHost = host; }
0098 void SetServer(Int_t server) { fServer = (Char_t)server; }
0099 void SetUser(const char *user) { fUser = user; }
0100
0101 TList *Established() const { return fSecContexts; }
0102 void SetEstablished(TList *nl) { fSecContexts = nl; }
0103
0104 void Print(Option_t *option = "") const override;
0105 void PrintEstablished() const;
0106
0107 TRootSecContext *CreateSecContext(const char *user, const char *host, Int_t meth,
0108 Int_t offset, const char *details,
0109 const char *token, TDatime expdate = kROOTTZERO,
0110 void *ctx = nullptr, Int_t key = -1);
0111
0112 ClassDefOverride(THostAuth,1)
0113 };
0114
0115 }
0116
0117 using THostAuth R__DEPRECATED(6, 42, "the RootAuth library is deprecated") = ROOT::Deprecated::THostAuth;
0118
0119 #endif