ldapsdk
0.0.1
|
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. More... | |
~LDAPConnection () | |
Destructor. More... | |
void | init (const std::string &hostname, int port) |
Initzializes a synchronous connection to a server. More... | |
void | start_tls () |
Start TLS on this connection. More... | |
void | bind (const std::string &dn="", const std::string &passwd="", LDAPConstraints *cons=0) |
Performs a simple authentication with the server. More... | |
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. More... | |
bool | compare (const std::string &dn, const LDAPAttribute &attr, LDAPConstraints *cons=0) |
Performs a COMPARE-operation on an entery of the destination server. More... | |
void | del (const std::string &dn, const LDAPConstraints *cons=0) |
Deletes an entry from the directory. More... | |
void | add (const LDAPEntry *le, const LDAPConstraints *cons=0) |
Use this method to perform the ADD-operation. More... | |
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. More... | |
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. More... | |
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. More... | |
LDAPExtResult * | extOperation (const std::string &oid, const std::string &value="", const LDAPConstraints *const =0) |
This method is for extended LDAP-Operations. More... | |
const std::string & | getHost () const |
int | getPort () const |
void | setConstraints (LDAPConstraints *cons) |
const LDAPConstraints * | getConstraints () const |
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. More... | |
static const int | SEARCH_ONE = LDAPAsynConnection::SEARCH_ONE |
Constant for the Search-Operation to indicate a One-Level Search. More... | |
static const int | SEARCH_SUB = LDAPAsynConnection::SEARCH_SUB |
Constant for the Search-Operation to indicate a Subtree Search. More... | |
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 |
References LDAPAsynConnection::add(), 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 |
References LDAPAsynConnection::bind(), DEBUG, LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPResult::REFERRAL, and LDAPResult::SUCCESS.
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 |
References LDAPAsynConnection::compare(), LDAPResult::COMPARE_FALSE, LDAPResult::COMPARE_TRUE, DEBUG, LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, and LDAPResult::REFERRAL.
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 |
References DEBUG, LDAPAsynConnection::del(), LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPResult::REFERRAL, and LDAPResult::SUCCESS.
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 |
References DEBUG, LDAPAsynConnection::extOperation(), LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPResult::REFERRAL, and LDAPResult::SUCCESS.
const LDAPConstraints * LDAPConnection::getConstraints | ( | ) | const |
References LDAPAsynConnection::getConstraints().
const string & LDAPConnection::getHost | ( | ) | const |
References LDAPAsynConnection::getHost().
int LDAPConnection::getPort | ( | ) | const |
References LDAPAsynConnection::getPort().
TlsOptions LDAPConnection::getTlsOptions | ( | ) | const |
References LDAPAsynConnection::getTlsOptions().
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 |
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 |
References DEBUG, LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPAsynConnection::modify(), LDAPResult::REFERRAL, and LDAPResult::SUCCESS.
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 |
References DEBUG, LDAPResult::getErrMsg(), LDAPMessageQueue::getNext(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPResult::REFERRAL, LDAPAsynConnection::rename(), and LDAPResult::SUCCESS.
void LDAPConnection::saslInteractiveBind | ( | const std::string & | mech, |
int | flags = 0 , |
||
SaslInteractionHandler * | sih = 0 , |
||
const LDAPConstraints * | cons = 0 |
||
) |
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 |
References DEBUG, LDAPResult::getErrMsg(), LDAPResult::getReferralUrls(), LDAPResult::getResultCode(), LDAP_DEBUG_TRACE, LDAPSearchResults::readMessageQueue(), LDAPResult::REFERRAL, LDAPAsynConnection::search(), and LDAPResult::SUCCESS.
void LDAPConnection::setConstraints | ( | LDAPConstraints * | cons | ) |
References LDAPAsynConnection::setConstraints().
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 |
References LDAPAsynConnection::start_tls().
void LDAPConnection::unbind | ( | ) |
Performs the UNBIND-operation on the destination server.
LDAPException | in any case of an error |
References LDAPAsynConnection::unbind().
|
static |
Constant for the Search-Operation to indicate a Base-Level Search.
|
static |
Constant for the Search-Operation to indicate a One-Level Search.
|
static |
Constant for the Search-Operation to indicate a Subtree Search.