PTLib  Version 2.10.4
PLDAPSession Class Reference

This class will create an LDAP client to access a remote LDAP server. More...

#include <pldap.h>

Inheritance diagram for PLDAPSession:
PObject PILSSession

List of all members.

Classes

class  BinaryModAttrib
class  ModAttrib
class  SearchContext
class  StringModAttrib

Public Types

enum  AuthenticationMethod { AuthSimple, AuthSASL, AuthKerberos, NumAuthenticationMethod }
enum  SearchScope { ScopeBaseOnly, ScopeSingleLevel, ScopeSubTree, NumSearchScope }

Public Member Functions

 PLDAPSession (const PString &defaultBaseDN=PString::Empty())
 Create a LDAP client.
 ~PLDAPSession ()
 Close the sesison on destruction.
PBoolean Open (const PString &server, WORD port=0)
 Open the LDAP session to the specified server.
PBoolean Close ()
 Close the LDAP session.
PBoolean IsOpen () const
 Determine of session is open.
PBoolean SetOption (int optcode, int value)
 Set LDAP option parameter (OpenLDAp specific values)
PBoolean SetOption (int optcode, void *value)
 Set LDAP option parameter (OpenLDAP specific values)
PBoolean Bind (const PString &who=PString::Empty(), const PString &passwd=PString::Empty(), AuthenticationMethod authMethod=AuthSimple)
 Bind to the remote LDAP server.
PBoolean Add (const PString &dn, const PArray< ModAttrib > &attributes)
 Add a new distringuished name to LDAP dirctory.
PBoolean Add (const PString &dn, const PStringToString &attributes)
 Add a new distringuished name to LDAP dirctory.
PBoolean Add (const PString &dn, const PStringArray &attributes)
 Add a new distringuished name to LDAP dirctory.
PBoolean Add (const PString &dn, const PLDAPStructBase &data)
 Add a new distringuished name to LDAP dirctory.
PBoolean Modify (const PString &dn, const PArray< ModAttrib > &attributes)
 Modify an existing distringuished name to LDAP dirctory.
PBoolean Modify (const PString &dn, const PStringToString &attributes)
 Add a new distringuished name to LDAP dirctory.
PBoolean Modify (const PString &dn, const PStringArray &attributes)
 Add a new distringuished name to LDAP dirctory.
PBoolean Modify (const PString &dn, const PLDAPStructBase &data)
 Add a new distringuished name to LDAP dirctory.
PBoolean Delete (const PString &dn)
 Delete the distinguished name from LDAP directory.
PBoolean Search (SearchContext &context, const PString &filter, const PStringArray &attributes=PStringList(), const PString &base=PString::Empty(), SearchScope scope=ScopeSubTree)
 Start search for specified information.
PBoolean GetSearchResult (SearchContext &context, PStringToString &data)
 Get the current search result entry.
PBoolean GetSearchResult (SearchContext &context, const PString &attribute, PString &data)
 Get an attribute of the current search result entry.
PBoolean GetSearchResult (SearchContext &context, const PString &attribute, PStringArray &data)
 Get an attribute of the current search result entry.
PBoolean GetSearchResult (SearchContext &context, const PString &attribute, PArray< PBYTEArray > &data)
 Get an attribute of the current search result entry.
PBoolean GetSearchResult (SearchContext &context, PLDAPStructBase &data)
 Get all attributes of the current search result entry.
PString GetSearchResultDN (SearchContext &context)
 Get the current search result distinguished name entry.
PBoolean GetNextSearchResult (SearchContext &context)
 Get the next search result.
PList< PStringToStringSearch (const PString &filter, const PStringArray &attributes=PStringList(), const PString &base=PString::Empty(), SearchScope scope=ScopeSubTree)
 Search for specified information, returning all matches.
void SetBaseDN (const PString &dn)
 Set the default base DN for use if not specified for searches.
const PStringGetBaseDN () const
 Set the default base DN for use if not specified for searches.
int GetErrorNumber () const
 Get the last OpenLDAP error code.
PString GetErrorText () const
 Get the last OpenLDAP error as text string.
struct ldap * GetOpenLDAP () const
 Get the OpenLDAP context structure.
const PTimeIntervalGetTimeout () const
 Get the timeout for LDAP operations.
void SetTimeout (const PTimeInterval &t)
 Set the timeout for LDAP operations.
void SetSearchLimit (const unsigned s)
 Set a limit on the number of results to return.

Protected Attributes

struct ldap * ldapContext
int errorNumber
unsigned protocolVersion
PString defaultBaseDN
unsigned searchLimit
PTimeInterval timeout
PString multipleValueSeparator

Detailed Description

This class will create an LDAP client to access a remote LDAP server.


Member Enumeration Documentation

Enumerator:
AuthSimple 
AuthSASL 
AuthKerberos 
NumAuthenticationMethod 
Enumerator:
ScopeBaseOnly 
ScopeSingleLevel 
ScopeSubTree 
NumSearchScope 

Constructor & Destructor Documentation

PLDAPSession::PLDAPSession ( const PString defaultBaseDN = PString::Empty())

Create a LDAP client.

Close the sesison on destruction.


Member Function Documentation

PBoolean PLDAPSession::Add ( const PString dn,
const PArray< ModAttrib > &  attributes 
)

Add a new distringuished name to LDAP dirctory.

PBoolean PLDAPSession::Add ( const PString dn,
const PStringToString attributes 
)

Add a new distringuished name to LDAP dirctory.

PBoolean PLDAPSession::Add ( const PString dn,
const PStringArray attributes 
)

Add a new distringuished name to LDAP dirctory.

The attributes list is a string array of the form attr=value

PBoolean PLDAPSession::Add ( const PString dn,
const PLDAPStructBase data 
)

Add a new distringuished name to LDAP dirctory.

The attributes list is a string array of the form attr=value

PBoolean PLDAPSession::Bind ( const PString who = PString::Empty(),
const PString passwd = PString::Empty(),
AuthenticationMethod  authMethod = AuthSimple 
)

Bind to the remote LDAP server.

Close the LDAP session.

Delete the distinguished name from LDAP directory.

const PString& PLDAPSession::GetBaseDN ( ) const [inline]

Set the default base DN for use if not specified for searches.

References defaultBaseDN.

int PLDAPSession::GetErrorNumber ( ) const [inline]

Get the last OpenLDAP error code.

References errorNumber.

Get the last OpenLDAP error as text string.

Get the next search result.

struct ldap* PLDAPSession::GetOpenLDAP ( ) const [inline, read]

Get the OpenLDAP context structure.

References ldapContext.

Get the current search result entry.

PBoolean PLDAPSession::GetSearchResult ( SearchContext context,
const PString attribute,
PString data 
)

Get an attribute of the current search result entry.

PBoolean PLDAPSession::GetSearchResult ( SearchContext context,
const PString attribute,
PStringArray data 
)

Get an attribute of the current search result entry.

PBoolean PLDAPSession::GetSearchResult ( SearchContext context,
const PString attribute,
PArray< PBYTEArray > &  data 
)

Get an attribute of the current search result entry.

Get all attributes of the current search result entry.

Get the current search result distinguished name entry.

const PTimeInterval& PLDAPSession::GetTimeout ( ) const [inline]

Get the timeout for LDAP operations.

References timeout.

PBoolean PLDAPSession::IsOpen ( ) const [inline]

Determine of session is open.

References ldapContext.

PBoolean PLDAPSession::Modify ( const PString dn,
const PArray< ModAttrib > &  attributes 
)

Modify an existing distringuished name to LDAP dirctory.

PBoolean PLDAPSession::Modify ( const PString dn,
const PStringToString attributes 
)

Add a new distringuished name to LDAP dirctory.

PBoolean PLDAPSession::Modify ( const PString dn,
const PStringArray attributes 
)

Add a new distringuished name to LDAP dirctory.

The attributes list is a string array of the form attr=value

PBoolean PLDAPSession::Modify ( const PString dn,
const PLDAPStructBase data 
)

Add a new distringuished name to LDAP dirctory.

The attributes list is a string array of the form attr=value

PBoolean PLDAPSession::Open ( const PString server,
WORD  port = 0 
)

Open the LDAP session to the specified server.

The server name string is of the form hostip[:port] where hostip is a host name or IP address and the :port is an optional port number. If not present then the port variable is used. If that is also zero then the default port of 369 is used.

PBoolean PLDAPSession::Search ( SearchContext context,
const PString filter,
const PStringArray attributes = PStringList(),
const PString base = PString::Empty(),
SearchScope  scope = ScopeSubTree 
)

Start search for specified information.

PList<PStringToString> PLDAPSession::Search ( const PString filter,
const PStringArray attributes = PStringList(),
const PString base = PString::Empty(),
SearchScope  scope = ScopeSubTree 
)

Search for specified information, returning all matches.

This can be used for simple LDAP databases where all attributes are represented by a string.

void PLDAPSession::SetBaseDN ( const PString dn) [inline]

Set the default base DN for use if not specified for searches.

References defaultBaseDN.

PBoolean PLDAPSession::SetOption ( int  optcode,
int  value 
)

Set LDAP option parameter (OpenLDAp specific values)

PBoolean PLDAPSession::SetOption ( int  optcode,
void *  value 
)

Set LDAP option parameter (OpenLDAP specific values)

void PLDAPSession::SetSearchLimit ( const unsigned  s) [inline]

Set a limit on the number of results to return.

References searchLimit.

void PLDAPSession::SetTimeout ( const PTimeInterval t) [inline]

Set the timeout for LDAP operations.

References timeout.


Member Data Documentation

int PLDAPSession::errorNumber [protected]

Referenced by GetErrorNumber().

struct ldap* PLDAPSession::ldapContext [protected]

Referenced by GetOpenLDAP(), and IsOpen().

unsigned PLDAPSession::protocolVersion [protected]
unsigned PLDAPSession::searchLimit [protected]

Referenced by SetSearchLimit().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines