LDAPConnection Class Reference

Main class for synchronous LDAP-Communication. More...

#include <LDAPConnection.h>

Inheritance diagram for LDAPConnection:

LDAPAsynConnection List of all members.

Public Member Functions

 LDAPConnection (const std::string &hostname="localhost", int port=389, LDAPConstraints *cons=new LDAPConstraints())
 This Constructor initializes synchronous LDAP-Connection.
 ~LDAPConnection ()
 Destructor.
void init (const std::string &hostname, int port)
 Initzializes a synchronous connection to a server.
void start_tls ()
 Start TLS on this connection.
void bind (const std::string &dn="", const std::string &passwd="", LDAPConstraints *cons=0)
 Performs a simple authentication with the server.
void unbind ()
 Performs the UNBIND-operation on the destination server.
bool compare (const std::string &dn, const LDAPAttribute &attr, LDAPConstraints *cons=0)
 Performs a COMPARE-operation on an entery of the destination server.
void del (const std::string &dn, const LDAPConstraints *cons=0)
 Deletes an entry from the directory.
void add (const LDAPEntry *le, const LDAPConstraints *cons=0)
 Use this method to perform the ADD-operation.
void modify (const std::string &dn, const LDAPModList *mods, const LDAPConstraints *cons=0)
 To modify the attributes of an entry, this method can be used.
void rename (const std::string &dn, const std::string &newRDN, bool delOldRDN=false, const std::string &newParentDN="", const LDAPConstraints *cons=0)
 This method performs the ModDN-operation.
LDAPSearchResultssearch (const std::string &base, int scope=0, const std::string &filter="objectClass=*", const StringList &attrs=StringList(), bool attrsOnly=false, const LDAPConstraints *cons=0)
 This method can be used for the sync.
LDAPExtResultextOperation (const std::string &oid, const std::string &value="", const LDAPConstraints *const =0)
 This method is for extended LDAP-Operations.
const std::string & getHost () const
int getPort () const
void setConstraints (LDAPConstraints *cons)
 Change the default constraints of the connection.
const LDAPConstraintsgetConstraints () const
 Get the default constraints of the connection.

Static Public Attributes

static const int SEARCH_BASE = LDAPAsynConnection::SEARCH_BASE
 Constant for the Search-Operation to indicate a Base-Level Search.
static const int SEARCH_ONE = LDAPAsynConnection::SEARCH_ONE
 Constant for the Search-Operation to indicate a One-Level Search.
static const int SEARCH_SUB = LDAPAsynConnection::SEARCH_SUB
 Constant for the Search-Operation to indicate a Subtree Search.

Detailed Description

Main class for synchronous LDAP-Communication.

The class represent a LDAP-Connection to perform synchronous LDAP-Operations. This provides methodes for the different LDAP-Operations. All the methods for the LDAP-operations block until all results for the operation are received or until an error occurs


Constructor & Destructor Documentation

LDAPConnection::LDAPConnection const std::string &  hostname = "localhost",
int  port = 389,
LDAPConstraints cons = new LDAPConstraints()
 

This Constructor initializes synchronous LDAP-Connection.

During execution of this constructor no network communication is performed. Just some internal data structure are initialized

Parameters:
hostname Name (or IP-Adress) of the destination host
port Port the LDAP server is running on
cons Default constraints to use with operations over this connection

LDAPConnection::~LDAPConnection  ) 
 

Destructor.


Member Function Documentation

void LDAPConnection::add const LDAPEntry le,
const LDAPConstraints cons = 0
 

Use this method to perform the ADD-operation.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
le the entry to add to the directory
cons A set of constraints that should be used with this request

Reimplemented from LDAPAsynConnection.

void LDAPConnection::bind const std::string &  dn = "",
const std::string &  passwd = "",
LDAPConstraints cons = 0
 

Performs a simple authentication with the server.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
dn The name of the entry to bind as
passwd The cleartext password for the entry

bool LDAPConnection::compare const std::string &  dn,
const LDAPAttribute attr,
LDAPConstraints cons = 0
 

Performs a COMPARE-operation on an entery of the destination server.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
dn Distinguished name of the entry for which the compare should be performed
attr An Attribute (one (!) value) to use for the compare operation
cons A set of constraints that should be used with this request
Returns:
The result of the compare operation. true if the attr-parameter matched an Attribute of the entry. false if it did not match

void LDAPConnection::del const std::string &  dn,
const LDAPConstraints cons = 0
 

Deletes an entry from the directory.

This method performs the DELETE operation on the server

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
dn Distinguished name of the entry that should be deleted
cons A set of constraints that should be used with this request

Reimplemented from LDAPAsynConnection.

LDAPExtResult* LDAPConnection::extOperation const std::string &  oid,
const std::string &  value = "",
const LDAPConstraints const = 0
 

This method is for extended LDAP-Operations.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
oid The Object Identifier of the Extended Operation that should be performed.
strint If the Extended Operation needs some additional data it can be passed to the server by this parameter.
cons A set of constraints that should be used with this request
Returns:
The result of the Extended Operation as an pointer to a LDAPExtResult-object.

Reimplemented from LDAPAsynConnection.

const LDAPConstraints * LDAPConnection::getConstraints  )  const
 

Get the default constraints of the connection.

Returns:
Pointer to the LDAPConstraints-Object that is currently used with the Connection

Reimplemented from LDAPAsynConnection.

const string & LDAPConnection::getHost  )  const
 

Returns:
The Hostname of the destination server of the connection.

Reimplemented from LDAPAsynConnection.

int LDAPConnection::getPort  )  const
 

Returns:
The Port to which this connection is connecting to on the remote server.

Reimplemented from LDAPAsynConnection.

void LDAPConnection::init const std::string &  hostname,
int  port
 

Initzializes a synchronous connection to a server.

There is actually no communication to the server. Just the object is initialized (e.g. this method is called within the LDAPConnection(char*,int,LDAPConstraints) constructor.)

Parameters:
hostname The Name or IP-Address of the destination LDAP-Server
port The Network Port the server is running on

Reimplemented from LDAPAsynConnection.

void LDAPConnection::modify const std::string &  dn,
const LDAPModList mods,
const LDAPConstraints cons = 0
 

To modify the attributes of an entry, this method can be used.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
dn The DN of the entry which should be modified
mods A set of modifications for that entry.
cons A set of constraints that should be used with this request

Reimplemented from LDAPAsynConnection.

void LDAPConnection::rename const std::string &  dn,
const std::string &  newRDN,
bool  delOldRDN = false,
const std::string &  newParentDN = "",
const LDAPConstraints cons = 0
 

This method performs the ModDN-operation.

It can be used to rename or move an entry by modifing its DN.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
dn The DN that should be modified
newRDN If the RDN of the entry should be modified the new RDN can be put here.
delOldRDN If the old RDN should be removed from the entry's attribute this parameter has to be "true"
newParentDN If the entry should be moved inside the DIT, the DN of the new parent of the entry can be given here.
cons A set of constraints that should be used with this request

Reimplemented from LDAPAsynConnection.

LDAPSearchResults* LDAPConnection::search const std::string &  base,
int  scope = 0,
const std::string &  filter = "objectClass=*",
const StringList attrs = StringList(),
bool  attrsOnly = false,
const LDAPConstraints cons = 0
 

This method can be used for the sync.

SEARCH-operation.

Exceptions:
LDAPReferralException if a referral is received
LDAPException for any other error occuring during the operation
Parameters:
base The distinguished name of the starting point for the search
scope The scope of the search. Possible values:
LDAPAsynConnection::SEARCH_BASE,
LDAPAsynConnection::SEARCH_ONE,
LDAPAsynConnection::SEARCH_SUB
filter The std::string representation of a search filter to use with this operation
attrsOnly true if only the attributes names (no values) should be returned
cons A set of constraints that should be used with this request
Returns:
A pointer to a LDAPSearchResults-object that can be used to read the results of the search.

Reimplemented from LDAPAsynConnection.

void LDAPConnection::setConstraints LDAPConstraints cons  ) 
 

Change the default constraints of the connection.

cons cons New LDAPConstraints to use with the connection

Reimplemented from LDAPAsynConnection.

void LDAPConnection::start_tls  ) 
 

Start TLS on this connection.

This isn't in the constructor, because it could fail (i.e. server doesn't have SSL cert, client api wasn't compiled against OpenSSL, etc.).

Exceptions:
LDAPException if the TLS Layer could not be setup correctly

Reimplemented from LDAPAsynConnection.

void LDAPConnection::unbind  ) 
 

Performs the UNBIND-operation on the destination server.

Exceptions:
LDAPException in any case of an error

Reimplemented from LDAPAsynConnection.


Member Data Documentation

const int LDAPConnection::SEARCH_BASE = LDAPAsynConnection::SEARCH_BASE [static]
 

Constant for the Search-Operation to indicate a Base-Level Search.

Reimplemented from LDAPAsynConnection.

const int LDAPConnection::SEARCH_ONE = LDAPAsynConnection::SEARCH_ONE [static]
 

Constant for the Search-Operation to indicate a One-Level Search.

Reimplemented from LDAPAsynConnection.

const int LDAPConnection::SEARCH_SUB = LDAPAsynConnection::SEARCH_SUB [static]
 

Constant for the Search-Operation to indicate a Subtree Search.

Reimplemented from LDAPAsynConnection.


The documentation for this class was generated from the following files:
Generated on Fri Jun 16 17:48:53 2006 for ldapsdk by  doxygen 1.4.6