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