Objet LDAP avec OU en arborescence

Request description

Bonjour,

Je fais suite à ce ticket Erreur à l'affichage d'un formulaire sur objet mappé LDAP

Dans notre LDAP, il y a deux OU imbriquées, déjà “people” puis une OU par pays.
→ people
→ FRA
→ ESP
→ ITA
etc…

Le baseDN de mon objet LDAP n’indique que le premier niveau puisque je peux avoir des utilisateurs dans tous les pays.

Cela fonctionne sur l’affichage en liste (search) mais pas quand je clique sur une ligne (select) : j’obtiens un “No row found”.

J’essaie de passer par code et d’utiliser la méthode search avec subtree=true pour parcourir l’arborescence des pays mais je ne trouve pas la bonne syntaxe, le retour est null.

		String url = XXXXXXX
		LDAPTool ldap = new LDAPTool(url);
		//JSONArray usrJSON = ldap.search("uid=" + info.getLogin() + ",ou=" + ctyCode3 + ",ou=People,o=renault",null,false, null, null, 10, false);
		JSONArray usrJSON = ldap.search("uid="+info.getLogin()+",ou=People,o=renault",null,true, null, null, 10, false);

Est-ce possible de parcourir plusieurs sous niveau, si oui comment ?
Ou est-ce que je dois plutôt utiliser Java directement ?

Merci d’avance,
Emmanuelle

Instance /health
[Platform]
Status=OK
Version=5.3.22
BuiltOn=2023-11-11 10:20

Les objets service LDAP (ObjectServiceLDAP) sont resté assez basiques, de mémoire on ne peut parcourir qu’une seule branche mais il faudrait que je vérifie ce que ça fait avec des sous arbres.

On est bien d’accord que ton objet est un objet service qui hérite de ObjectServiceLDAP ?

Oui dans le code, dans le paramétrage il n’hérite de rien, je devrais ?

En revanche le code que j’ai copié est dans une autre classe où j’essaie simplement d’utiliser le LdapTool.

Au niveau du paramétrage pour un objet service LDAP il faut juste mettre service-ldap dans le nom physique et le settings dans la search spec

Dans la plupart des cas il n’y pas besoin de code sauf si on a besoin de surcharger des choses et dans ce cas il faut faire hériter la classe de l’objet de ObjectServiceLDAP.

Il est alors possible de surcharger les hooks de ce type d’objet: searchService, selectService etc.

Cet objet service LDAP utilise par défaut la classe helper LDAPTool mais il est possible d’utiliser d’autres utilitaires dans ces surcharges de hooks.

Mais avant de te lancer dans une telle implémentation custom laisse moi le temps de tester le cas des sous arbres car s’il y a une limitation de ObjectServiceLDAP ou du helper LDAPTool, elle n’est peut être pas compliquée à lever

1 Like

Le search LDAP descend effectivement l’arboresence à partir du base DN (au passage il faudrait rendre ça configurable) mais que le select LDAP cherche, lui, un DN construit comme <attribut "row ID" (uid par defaut)>, <base DN>

L’évolution consiste donc à conserver le DN effectif des records récupérés au search pour s’en servir au select

Je te tiendrai au courant sur cette évolution : faisabilité & disponibilité

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.