Descending the browse hierarchy from an LDAP reflector
As an example, let’s look at how we might perform a hierarchy descent
in the
navigation of Lightweight Directory Access Protocol (LDAP) information
provided by a custom LDAP reflector
in a jabber:iq:browse context.[3]
Each time, the link
to the next level is via the item’s JID, which is the target of the
browse query.
First, we send an initial query:
SEND: <iq type="get" id="browser_JCOM_15" to="ldap.yak">
<query xmlns="jabber:iq:browse"></query>
</iq>
In answer to the initial query to what is effectively the LDAP root
represented by the JID of the LDAP component itself (ldap.yak, no
username prefix), the initial hierarchy level containing
People and Groups is returned,
wrapped in a pseudoroot:
RECV: <iq type='result' to='dj@yak/winjab' from='ldap.yak' id='browser_JCOM_15'>
<query xmlns='jabber:iq:browse'>
<item name='root entry' xmlns='jabber:iq:browse' jid='ldap.yak'>
<item name='ou=People' jid='ou=People@ldap.yak'/>
<item name='ou=Groups' jid='ou=Groups@ldap.yak'/>
</item>
</query>
</iq>
We see the items presented to us and choose to descend the path marked
Groups; our second browse request is made to the JID that represents
that item, ou=Groups@ldap.yak:
SEND: <iq type="get" id="browser_JCOM_17" to="ou=People@ldap.yak">
<query xmlns="jabber:iq:browse"></query>
</iq>
The LDAP reflector component receives the IQ packet addressed to the JID
ou=People@ldap.yak and interprets the username part of
the JID (ou=People ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access