XrdSecService Class Reference

#include <XrdSecInterface.hh>

List of all members.

Public Member Functions

virtual const char * getParms (int &size, XrdNetAddrInfo *endPoint=0)=0
virtual XrdSecProtocolgetProtocol (const char *host, XrdNetAddrInfo &endPoint, const XrdSecCredentials *cred, XrdOucErrInfo *einfo)=0
 XrdSecService ()
 Constructor.
virtual ~XrdSecService ()
 Destructor.

Detailed Description

Example:

include "XrdVersion.hh" XrdVERSIONINFO(XrdSecGetProtocol,<name>);

extern "C" XrdSecProtocol *XrdSecGetProtocol (const char *hostname, XrdNetAddrInfo &endPoint, XrdSecParameters &sectoken, XrdOucErrInfo *einfo=0) {....}

The XrdSecService object is the the object that the server uses to obtain parameters to be passed to the client on initial contact and to create the appropriate protocol on the initial receipt of the client's credentials. Server-side processing is a bit more complicated because the set of valid protocols needs to be configured and that configuration needs to be supplied to the client so that both can agree on a compatible protocol. This object is created via a call to XrdSecgetService, defined later on. You may replace the default implementation by defining a plugin via the seclib directive.

Warning: The XrdSecService object as well as any objects returned by it should be MT-safe.


Constructor & Destructor Documentation

XrdSecService::XrdSecService (  )  [inline]

Constructor.

virtual XrdSecService::~XrdSecService (  )  [inline, virtual]

Destructor.


Member Function Documentation

virtual const char* XrdSecService::getParms ( int &  size,
XrdNetAddrInfo *  endPoint = 0 
) [pure virtual]

Obtain security parameters to be sent to the client upon initial contact.

Parameters:
size Where the length of the return parameters are to be placed.
endPoint The client's address information. It may also be a null pointer if the client's host is immaterial.
Returns:
EITHER The address of the parameter string (which may be host-specific if hname was supplied). The length of the string must be returned in size parameter. OR A null pointer if authentication need not occur for the client. The size parameter should be set to zero as well.
virtual XrdSecProtocol* XrdSecService::getProtocol ( const char *  host,
XrdNetAddrInfo &  endPoint,
const XrdSecCredentials cred,
XrdOucErrInfo einfo 
) [pure virtual]

Obtain a protocol object suitable for authentication based on cred and possibly based on the hostname or host address, as needed.

Parameters:
host The client's host name or the IP address as text. An IP may be supplied if the host address is not resolvable or resolution has been suppressed (i.e. nodnr). Use endPoint to get the hostname if it's actually needed.
endPoint the XrdNetAddrInfo object describing the client end-point.
cred The initial credentials supplied by the client, the pointer may be null if the client did not supply credentials.
einfo The structure to record any error messages. These are normally sent to the client. If einfo is a null pointer, the messages should be sent to standard error via an XrdSysError object using the supplied XrdSysLogger when the the plugin was initialized.
Returns:
Success: Address of protocol object to be used for authentication. If cred was null, a host protocol object shouldpo be returned if so allowed. Failure: Null, no protocol can be returned. The einfo parameter, if supplied, has the reason.

The documentation for this class was generated from the following file:

Generated on 11 Apr 2016 for xrootd by  doxygen 1.6.1