LDAP avec cURL
Ronieee
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Ronieee Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Ronieee Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois créer un client LDAP en C++.
J'ai d'abord essayer de travailler avec OpenLDAP, puis on m'a fait remarquer que la librairie cURL (que je possède déjà dans mon projet dans une autre section) supportait le protocole LDAP.
J'aimerais savoir si quelqu'un avait un sample pour voir comment s'utilisait ces fonctionnalités.
De plus, j'aimerais savoir si, comme j'ai vu que cURL s'appuyait justement d'OpenLDAP, Est-ce que je dois aussi avoir les librairies d'OpenLDAP pour utiliser les fonctionnalités LDAP sous cURL ?
Je dois créer un client LDAP en C++.
J'ai d'abord essayer de travailler avec OpenLDAP, puis on m'a fait remarquer que la librairie cURL (que je possède déjà dans mon projet dans une autre section) supportait le protocole LDAP.
J'aimerais savoir si quelqu'un avait un sample pour voir comment s'utilisait ces fonctionnalités.
De plus, j'aimerais savoir si, comme j'ai vu que cURL s'appuyait justement d'OpenLDAP, Est-ce que je dois aussi avoir les librairies d'OpenLDAP pour utiliser les fonctionnalités LDAP sous cURL ?
A voir également:
- Curl ldap
- Client ldap windows - Télécharger - Édition & Programmation
- Curl commande introuvable - Forum Shell
- Ldap tool box - Télécharger - Récupération de données
- Mantis ldap - Forum Réseau
- Impossible de joindre l'annuaire ldap glpi ✓ - Forum Gestion de parc
1 réponse
Bon, pour ceux que ca intéresse.
Si l'on veut utiliser les commandes LDAP avec la libcurl en C++, il faut bien posséder les librairies OpenLDAP dans son package.
De plus, pour ceux qui cherche un bout de code d'utilisation du LDAP avec cURL C++ : j'ai codé une version, que je n'ai pas pu tester. Je ne saurais dire si elle est juste ou non, mais je l'ai retranscrit d'un code php et ca devrait normalement marcher... :
size_t ws_write(char *ptr, size_t size, size_t nmemb, std::stringstream *stream) {
if(stream != NULL) { stream->write(ptr, size * nmemb); }
return size * nmemb;
}
int Ldap::getentries( ){
CURL *curl;
CURLcode ret;
std::stringstream out_stream;
std::string data;
std::string url="ldap://ldap.mondomaine.fr/dc=example,dc=com";
/*
ldap://hôte:port/DN?attributs?profondeur?filtre?extension
DN : le DN à partir duquel effectuer la recherche ;
attributs : liste contenant les attributs à renvoyer, séparés par des virgules ;
profondeur : base (par défaut), one ou sub pour la profondeur de la recherche ;
filtre : le filtre de recherche ;
extension : extensions éventuelles du format d'URL LDAP.
*/
curl = curl_easy_init();
// Options necessaires a la recuperation des donnees demandees
ret = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ws_write);
ret = curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out_stream);
// Options de connection
ret = curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
ret = curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
ret = curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10);
// Execution commande
ret = curl_easy_perform(curl);
if(ret != CURLE_OK){ cout << Ldap Error : << curl_easy_strerror(ret); }
curl_easy_cleanup(curl);
data = out_stream.str().c_str();
if( data == "" ) data = "$NotFound";
return 0;
}
Si l'on veut utiliser les commandes LDAP avec la libcurl en C++, il faut bien posséder les librairies OpenLDAP dans son package.
De plus, pour ceux qui cherche un bout de code d'utilisation du LDAP avec cURL C++ : j'ai codé une version, que je n'ai pas pu tester. Je ne saurais dire si elle est juste ou non, mais je l'ai retranscrit d'un code php et ca devrait normalement marcher... :
size_t ws_write(char *ptr, size_t size, size_t nmemb, std::stringstream *stream) {
if(stream != NULL) { stream->write(ptr, size * nmemb); }
return size * nmemb;
}
int Ldap::getentries( ){
CURL *curl;
CURLcode ret;
std::stringstream out_stream;
std::string data;
std::string url="ldap://ldap.mondomaine.fr/dc=example,dc=com";
/*
ldap://hôte:port/DN?attributs?profondeur?filtre?extension
DN : le DN à partir duquel effectuer la recherche ;
attributs : liste contenant les attributs à renvoyer, séparés par des virgules ;
profondeur : base (par défaut), one ou sub pour la profondeur de la recherche ;
filtre : le filtre de recherche ;
extension : extensions éventuelles du format d'URL LDAP.
*/
curl = curl_easy_init();
// Options necessaires a la recuperation des donnees demandees
ret = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ws_write);
ret = curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out_stream);
// Options de connection
ret = curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
ret = curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
ret = curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10);
// Execution commande
ret = curl_easy_perform(curl);
if(ret != CURLE_OK){ cout << Ldap Error : << curl_easy_strerror(ret); }
curl_easy_cleanup(curl);
data = out_stream.str().c_str();
if( data == "" ) data = "$NotFound";
return 0;
}