xrootd
XrdSecEntity.hh
Go to the documentation of this file.
1#ifndef __SEC_ENTITY_H__
2#define __SEC_ENTITY_H__
3/******************************************************************************/
4/* */
5/* X r d S e c E n t i t y . h h */
6/* */
7/* (c) 2005 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* Produced by Andrew Hanushevsky for Stanford University under contract */
9/* DE-AC02-76-SFO0515 with the Department of Energy */
10/* */
11/* This file is part of the XRootD software suite. */
12/* */
13/* XRootD is free software: you can redistribute it and/or modify it under */
14/* the terms of the GNU Lesser General Public License as published by the */
15/* Free Software Foundation, either version 3 of the License, or (at your */
16/* option) any later version. */
17/* */
18/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21/* License for more details. */
22/* */
23/* You should have received a copy of the GNU Lesser General Public License */
24/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26/* */
27/* The copyright holder's institutional names and contributor's names may not */
28/* be used to endorse or promote products derived from this software without */
29/* specific prior written permission of the institution or contributor. */
30/******************************************************************************/
31
32//------------------------------------------------------------------------------
43//------------------------------------------------------------------------------
44
45#include <string.h>
46
47#define XrdSecPROTOIDSIZE 8
48
49class XrdNetAddrInfo;
50
52{
53public:
54 char prot[XrdSecPROTOIDSIZE]; // Protocol used
55 char *name; // Entity's name
56 char *host; // Entity's host name dnr dependent
57 char *vorg; // Entity's virtual organization
58 char *role; // Entity's role
59 char *grps; // Entity's group names
60 char *endorsements; // Protocol specific endorsements
61 char *moninfo; // Additional information for monitoring
62 char *creds; // Raw client credentials or certificate
63 int credslen; // Length of the 'creds' field
64 int ueid; // Unique xrootd entity identifier
65XrdNetAddrInfo *addrInfo; // Connection details from getProtocol
66const char *tident; // Trace identifier always preset
67 void *sessvar; // Plugin settable storage pointer
68 // that is common to the session. Free
69 // it in your XrdSfsFileSystem::Disc()
70 // implementation, as needed.
71 XrdSecEntity(const char *pName = "")
72 {Reset();
73 strncpy(prot, pName, XrdSecPROTOIDSIZE-1);
74 prot[XrdSecPROTOIDSIZE-1] = '\0';
75 }
77
78 void Reset()
79 {
80 memset( prot, 0, XrdSecPROTOIDSIZE );
81 name = 0;
82 host = 0;
83 vorg = 0;
84 role = 0;
85 grps = 0;
86 endorsements = 0;
87 moninfo = 0;
88 creds = 0;
89 credslen = 0;
90 ueid = 0;
91 addrInfo = 0;
92 tident = 0;
93 sessvar = 0;
94 }
95};
96
97#define XrdSecClientName XrdSecEntity
98#define XrdSecServerName XrdSecEntity
99#endif
#define XrdSecPROTOIDSIZE
Definition: XrdSecEntity.hh:47
Definition: XrdNetAddrInfo.hh:54
Definition: XrdSecEntity.hh:52
int ueid
Definition: XrdSecEntity.hh:64
char * vorg
Definition: XrdSecEntity.hh:57
int credslen
Definition: XrdSecEntity.hh:63
XrdNetAddrInfo * addrInfo
Definition: XrdSecEntity.hh:65
const char * tident
Definition: XrdSecEntity.hh:66
char prot[XrdSecPROTOIDSIZE]
Definition: XrdSecEntity.hh:54
char * creds
Definition: XrdSecEntity.hh:62
void * sessvar
Definition: XrdSecEntity.hh:67
char * grps
Definition: XrdSecEntity.hh:59
~XrdSecEntity()
Definition: XrdSecEntity.hh:76
char * name
Definition: XrdSecEntity.hh:55
XrdSecEntity(const char *pName="")
Definition: XrdSecEntity.hh:71
char * role
Definition: XrdSecEntity.hh:58
char * endorsements
Definition: XrdSecEntity.hh:60
char * moninfo
Definition: XrdSecEntity.hh:61
char * host
Definition: XrdSecEntity.hh:56
void Reset()
Definition: XrdSecEntity.hh:78