PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PLDAPSession Class Reference

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

#include <pldap.h>

Inheritance diagram for PLDAPSession:
Collaboration diagram for PLDAPSession:

Classes

class  BinaryModAttrib
 
class  ModAttrib
 
class  SearchContext
 
class  StringModAttrib
 

Public Types

enum  AuthenticationMethod { AuthSimple, AuthSASL, AuthKerberos, NumAuthenticationMethod }
 
enum  SearchScope { ScopeBaseOnly, ScopeSingleLevel, ScopeSubTree, NumSearchScope }
 
- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 

Public Member Functions

 PLDAPSession (const PString &defaultBaseDN=PString::Empty())
 Create a LDAP client. More...
 
 ~PLDAPSession ()
 Close the sesison on destruction. More...
 
PBoolean Open (const PString &server, WORD port=0)
 Open the LDAP session to the specified server. More...
 
PBoolean Close ()
 Close the LDAP session. More...
 
PBoolean IsOpen () const
 Determine of session is open. More...
 
PBoolean SetOption (int optcode, int value)
 Set LDAP option parameter (OpenLDAp specific values) More...
 
PBoolean SetOption (int optcode, void *value)
 Set LDAP option parameter (OpenLDAP specific values) More...
 
PBoolean StartTLS ()
 Start encrypted connection. More...
 
PBoolean Bind (const PString &who=PString::Empty(), const PString &passwd=PString::Empty(), AuthenticationMethod authMethod=AuthSimple)
 Bind to the remote LDAP server. More...
 
PBoolean Add (const PString &dn, const PArray< ModAttrib > &attributes)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Add (const PString &dn, const PStringToString &attributes)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Add (const PString &dn, const PStringArray &attributes)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Add (const PString &dn, const PLDAPStructBase &data)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Modify (const PString &dn, const PArray< ModAttrib > &attributes)
 Modify an existing distringuished name to LDAP dirctory. More...
 
PBoolean Modify (const PString &dn, const PStringToString &attributes)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Modify (const PString &dn, const PStringArray &attributes)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Modify (const PString &dn, const PLDAPStructBase &data)
 Add a new distringuished name to LDAP dirctory. More...
 
PBoolean Delete (const PString &dn)
 Delete the distinguished name from LDAP directory. More...
 
PBoolean Search (SearchContext &context, const PString &filter, const PStringArray &attributes=PStringList(), const PString &base=PString::Empty(), SearchScope scope=ScopeSubTree)
 Start search for specified information. More...
 
PBoolean GetSearchResult (SearchContext &context, PStringToString &data)
 Get the current search result entry. More...
 
PBoolean GetSearchResult (SearchContext &context, const PString &attribute, PString &data)
 Get an attribute of the current search result entry. More...
 
PBoolean GetSearchResult (SearchContext &context, const PString &attribute, PStringArray &data)
 Get an attribute of the current search result entry. More...
 
PBoolean GetSearchResult (SearchContext &context, const PString &attribute, PArray< PBYTEArray > &data)
 Get an attribute of the current search result entry. More...
 
PBoolean GetSearchResult (SearchContext &context, PLDAPStructBase &data)
 Get all attributes of the current search result entry. More...
 
PString GetSearchResultDN (SearchContext &context)
 Get the current search result distinguished name entry. More...
 
PBoolean GetNextSearchResult (SearchContext &context)
 Get the next search result. More...
 
PList< PStringToStringSearch (const PString &filter, const PStringArray &attributes=PStringList(), const PString &base=PString::Empty(), SearchScope scope=ScopeSubTree)
 Search for specified information, returning all matches. More...
 
void SetBaseDN (const PString &dn)
 Set the default base DN for use if not specified for searches. More...
 
const PStringGetBaseDN () const
 Set the default base DN for use if not specified for searches. More...
 
int GetErrorNumber () const
 Get the last OpenLDAP error code. More...
 
PString GetErrorText () const
 Get the last OpenLDAP error as text string. More...
 
struct ldap * GetOpenLDAP () const
 Get the OpenLDAP context structure. More...
 
const PTimeIntervalGetTimeout () const
 Get the timeout for LDAP operations. More...
 
void SetTimeout (const PTimeInterval &t)
 Set the timeout for LDAP operations. More...
 
void SetSearchLimit (const unsigned s)
 Set a limit on the number of results to return. More...
 
- Public Member Functions inherited from PObject
__inline unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
__inline void SetTraceContextIdentifier (unsigned id)
 
__inline void SetTraceContextIdentifier (const PObject &obj)
 
__inline void SetTraceContextIdentifier (const PObject *obj)
 
__inline void CopyTraceContextIdentifier (PObject &obj) const
 
__inline void CopyTraceContextIdentifier (PObject *obj) const
 
virtual ~PObject ()
 
__inline const char * GetClass () const
 
__inline bool IsClass (const char *name) const
 
__inline const PObjectPTraceObjectInstance () const
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Attributes

struct ldap * m_ldapContext
 
int m_errorNumber
 
unsigned m_protocolVersion
 
PString m_defaultBaseDN
 
unsigned m_searchLimit
 
PTimeInterval m_timeout
 
PString m_multipleValueSeparator
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Static Public Member Functions inherited from PObject
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject *from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject *from)
 
static __inline const char * Class ()
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
template<typename T >
static Comparison Compare2 (T v1, T v2)
 Compare two types, returning Comparison type. More...
 
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 

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.

PLDAPSession::~PLDAPSession ( )

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.

PBoolean PLDAPSession::Close ( )

Close the LDAP session.

PBoolean PLDAPSession::Delete ( const PString dn)

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 m_defaultBaseDN.

int PLDAPSession::GetErrorNumber ( ) const
inline

Get the last OpenLDAP error code.

References m_errorNumber.

PString PLDAPSession::GetErrorText ( ) const

Get the last OpenLDAP error as text string.

PBoolean PLDAPSession::GetNextSearchResult ( SearchContext context)

Get the next search result.

struct ldap* PLDAPSession::GetOpenLDAP ( ) const
inline

Get the OpenLDAP context structure.

References m_ldapContext.

PBoolean PLDAPSession::GetSearchResult ( SearchContext context,
PStringToString data 
)

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.

PBoolean PLDAPSession::GetSearchResult ( SearchContext context,
PLDAPStructBase data 
)

Get all attributes of the current search result entry.

PString PLDAPSession::GetSearchResultDN ( SearchContext context)

Get the current search result distinguished name entry.

const PTimeInterval& PLDAPSession::GetTimeout ( ) const
inline

Get the timeout for LDAP operations.

References m_timeout.

PBoolean PLDAPSession::IsOpen ( ) const
inline

Determine of session is open.

References m_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 m_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 m_searchLimit.

void PLDAPSession::SetTimeout ( const PTimeInterval t)
inline

Set the timeout for LDAP operations.

References m_timeout.

PBoolean PLDAPSession::StartTLS ( )

Start encrypted connection.

Member Data Documentation

PString PLDAPSession::m_defaultBaseDN
protected

Referenced by GetBaseDN(), and SetBaseDN().

int PLDAPSession::m_errorNumber
protected

Referenced by GetErrorNumber().

struct ldap* PLDAPSession::m_ldapContext
protected

Referenced by GetOpenLDAP(), and IsOpen().

PString PLDAPSession::m_multipleValueSeparator
protected
unsigned PLDAPSession::m_protocolVersion
protected
unsigned PLDAPSession::m_searchLimit
protected

Referenced by SetSearchLimit().

PTimeInterval PLDAPSession::m_timeout
protected

Referenced by GetTimeout(), and SetTimeout().


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