Main class for synchronous LDAP-Communication. More...
#include <LDAPConnection.h>
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 | saslInteractiveBind (const std::string &mech, int flags=0, SaslInteractionHandler *sih=0, const LDAPConstraints *cons=0) |
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. | |
LDAPSearchResults * | 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. | |
LDAPExtResult * | extOperation (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 LDAPConstraints * | getConstraints () const |
Get the default constraints of the connection. | |
TlsOptions | getTlsOptions () const |
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. |
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
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
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.
void LDAPConnection::add | ( | const LDAPEntry * | le, | |
const LDAPConstraints * | cons = 0 | |||
) |
Use this method to perform the ADD-operation.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
le | the entry to add to the directory | |
cons | A set of constraints that should be used with this request |
Reimplemented from LDAPAsynConnection.
References DEBUG, LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPResult::REFERRAL, and LDAPResult::SUCCESS.
void LDAPConnection::bind | ( | const std::string & | dn = "" , |
|
const std::string & | passwd = "" , |
|||
LDAPConstraints * | cons = 0 | |||
) |
Performs a simple authentication with the server.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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 |
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
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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 |
Reimplemented from LDAPAsynConnection.
const LDAPConstraints * LDAPConnection::getConstraints | ( | ) | const |
Get the default constraints of the connection.
Reimplemented from LDAPAsynConnection.
const string & LDAPConnection::getHost | ( | ) | const |
Reimplemented from LDAPAsynConnection.
int LDAPConnection::getPort | ( | ) | const |
Reimplemented from LDAPAsynConnection.
TlsOptions LDAPConnection::getTlsOptions | ( | ) | const |
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.)
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.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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.
void LDAPConnection::saslInteractiveBind | ( | const std::string & | mech, | |
int | flags = 0 , |
|||
SaslInteractionHandler * | sih = 0 , |
|||
const LDAPConstraints * | cons = 0 | |||
) |
Reimplemented from LDAPAsynConnection.
References DEBUG, LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPResult::REFERRAL, and LDAPResult::SUCCESS.
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.
LDAPReferralException | if a referral is received | |
LDAPException | for any other error occuring during the operation |
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 |
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.).
LDAPException | if the TLS Layer could not be setup correctly |
Reimplemented from LDAPAsynConnection.
void LDAPConnection::unbind | ( | ) |
Performs the UNBIND-operation on the destination server.
LDAPException | in any case of an error |
Reimplemented from LDAPAsynConnection.
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.