Consultation d'un annuaire LDAP en C++

Résolu/Fermé
Charlie37 Messages postés 6 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 28 mai 2009 - 5 mars 2009 à 18:37
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 27 mars 2009 à 18:25
Salut a tous !
Je dois lire des informations dans l'annuaire LDAP de ma boite, en passant par une appli en C++

(En ligne de commande, je fais simplement ldapsearch pour afficher des informations de l'annuaire. Je suis sous Debian 4.0)

Je me suis renseigne sur la bibliotheque OpenLDAP, elle a des methodes interessantes (ldap_bind_s, ldap_search_s, ldap_unbind_s... ) mais je me demande comment l'utiliser dans l'appli, cela me parait un peu lourd pour pas grand chose.

N'y a-t-il pas une autre methode ?
Quelqu'un est-il deja passe par la ?
Merci d'avance !

6 réponses

mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
6 mars 2009 à 11:22
En fait tu as deux approches.

1) Soit tu utilises la librairie intégrale.

Dans ce cas il faut que lorsque tu compiles ton programme, celui-ci sache ou trouver les headers de la libraire (option -I ou -isystem) et les binaires de la librairie (voir options -L, -l, -Wl,R).
http://www.commentcamarche.net/forum/affich 11131597 make file incluant des bibliotheques#1

Ça fait partie des trucs que j'ai déjà expliquer sur le forum, il faudrait que je le mette dans la faq quand j'aurai un peu de temps.

2) Soit tu prends les morceaux qui t'intéressent.

Ceci concerne les fichiers .h .hpp .c et .cpp. Tu les mets dans un répertoire de tes sources par exemple openldap. Ensuite tu corriges ton makefile pour que les fichiers sources que tu as rajouté compilent et tu complètes éventuellement les chemins d'include (option -I) vers les headers que tu as importé.

Attention dans ce cas à respecter les termes de la licence openldap car si tu fais ça il y a des contraintes.
https://www.openldap.org/software/release/license.html

Bonne chance
3
Charlie37 Messages postés 6 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 28 mai 2009 4
27 mars 2009 à 11:26
Ok alors j´ai vu avec les admin, la lib OpenLDAP est installée.

Dans le code, voici les include a ajouter :

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <lber.h>
#include <ldap.h>


Et dans le makefile, j´ai ajouté
-llber -lldap


Voilà, ca fonctionne très bien :-)
Merci beaucoup
3
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
5 mars 2009 à 21:11
Si tu trouves la librairie trop volumineuse, au pire tu prends juste les morceaux qui t'intéressent... non ?

Attention à rester dans les termes de la licence :
https://www.openldap.org/software/release/license.html

Bonne chance
1
Charlie37 Messages postés 6 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 28 mai 2009 4
6 mars 2009 à 10:45
Merci mamiemando pour ta reponse rapide
Oui, je pense prendre uniquement les morceaux qui m'interessent.
Cependant, je ne suis pas tres a l'aise avec ces integrations de librairies, c'est une operation courante et pourtant je n'ai jamais eu l'occasion de le faire.
J'ai ajoute au cas par cas les fichiers qui me manquaient, puis j'ai une erreur au moment du link, surement due aux makefiles, mais je ne sais pas comment les adapter.

Je me demande quels fichiers ajouter exactement : tout le repertoire /include ? tout le repertoire /libraries ?
Comment adapter les makefiles ?
Merci
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Charlie37 Messages postés 6 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 28 mai 2009 4
6 mars 2009 à 11:39
Merci beaucoup pour ces precisions
Je vais voir les liens que tu mentionnes
Merci encore
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
27 mars 2009 à 18:25
Merci pour ce complément d'informations !
0