library: libCore #include "TSecContext.h"

# TSecContext

class description - source file - inheritance tree (.pdf)

## class TSecContext : public TObject

| Inheritance Chart:
`TObject`
| <- | `TSecContext` |

        public:

                          TSecContext(const char* url, Int_t meth, Int_t offset, const char* details, const char* token, TDatime expdate = kROOTTZERO, void* ctx = 0, Int_t key = 1)
                          TSecContext(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)
                          TSecContext(const TSecContext&)
                  virtual ~TSecContext()
                     void AddForCleanup(Int_t port, Int_t proto, Int_t type)
              const char* AsString(TString& out) const
           static TClass* Class()
                     void Cleanup()
                     void DeActivate(Option_t* opt = "CR")
                    void* GetContext() const
              const char* GetDetails() const
                  TDatime GetExpDate() const
              const char* GetHost() const
                    Int_t GetMethod() const
              const char* GetMethodName() const
                    Int_t GetOffSet() const
                    Int_t GetRSAKey() const
                   TList* GetSecContextCleanup() const
              const char* GetToken() const
              const char* GetUser() const
                   Bool_t IsA(const char* methodname) const
          virtual TClass* IsA() const
                   Bool_t IsActive() const
             TSecContext& operator=(const TSecContext&)
             virtual void Print(Option_t* option = "F") const
                     void SetDetails(const char* details)
                     void SetExpDate(TDatime expdate)
                     void SetOffSet(Int_t offset)
                     void SetUser(const char* user)
             virtual void ShowMembers(TMemberInspector& insp, char* parent)
             virtual void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)

### Data Members

        private:

            void* fContext  Krb5, Globus: ptr to specific sec context
           TList* fCleanup  Points to list with info for remote cleanup
          TString fDetails  Auth process details (user, principal, ... )
          TDatime fExpDate  Expiring date (one sec precision)
          TString fHost     Remote host name
            Int_t fMethod   Authentication method used
            Int_t fOffSet   offset in remote host auth tab file (in bytes)
            Int_t fRSAKey   Type of RSA key used
          TString fToken    Token identifying this authentication
          TString fUser     Remote login username

## Class Description

     TSecContext

     Contains details about an established security context
     Used by THostAuth

TSecContext(const char *user, const char *host, Int_t meth, Int_t offset, const char *details, const char *token, TDatime expdate, void *ctx, Int_t key) : TObject()

     Ctor for SecContext object.

TSecContext(const char *url, Int_t meth, Int_t offset, const char *details, const char *token, TDatime expdate, void *ctx, Int_t key) : TObject()

     Ctor for SecContext object.
     User and host from url = user@host .

~TSecContext()

     Dtor: DeActivate (local/remote cleanup, list removal),
     if still Active

void AddForCleanup(Int_t port, Int_t proto, Int_t type)

     Create a new TSecContextCleanup
     Internally is added to the list

void Cleanup()

     Ask remote cleanup of this context

void DeActivate(Option_t *Opt)

     Set OffSet to -1 and expiring Date to default
     Remove from the list
     If globus, cleanup local stuff
     If Opt contains "C" or "c", ask for remote cleanup
     If Opt contains "R" or "r", remove from the list
     Default Opt="CR"

Bool_t IsA(const char *methname) const

     Checks if this security context is for method named 'methname'
     Valid names: UsrPwd, SRP, Krb5, Globus, SSH, UidGid
     (Case sensitive)
     (see TAuthenticate.cxx for updated list)

Bool_t IsActive() const

     Check remote OffSet and expiring Date

void Print(Option_t *opt) const

     If opt is "F" (default) print object content.
     If opt is "<number>" print in special form for calls within THostAuth
     with cardinality <number>
     If opt is "S" prints short in-line form for calls within TFTP,
     TSlave, TProof ...

const char* AsString(TString &out) const

     Returns short string with relevant information about this
     security context

### Inline Functions

                   void* GetContext() const
             const char* GetDetails() const
                 TDatime GetExpDate() const
             const char* GetHost() const
                   Int_t GetMethod() const
             const char* GetMethodName() const
                   Int_t GetOffSet() const
                   Int_t GetRSAKey() const
                  TList* GetSecContextCleanup() const
             const char* GetToken() const
             const char* GetUser() const
                    void SetDetails(const char* details)
                    void SetExpDate(TDatime expdate)
                    void SetOffSet(Int_t offset)
                    void SetUser(const char* user)
                 TClass* Class()
                 TClass* IsA() const
                    void ShowMembers(TMemberInspector& insp, char* parent)
                    void Streamer(TBuffer& b)
                    void StreamerNVirtual(TBuffer& b)
             TSecContext TSecContext(const TSecContext&)
            TSecContext& operator=(const TSecContext&)

Author: G. Ganis 19/03/2003
Last update: root/net:$Name: $:$Id: TSecContext.cxx,v 1.8 2005/06/23 10:51:12 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *