Le 21/01/2018 à 22:25, Nick Couchman a écrit :
> Hey, there, everyone,
> Over at the ASF Guacamole project we're trying to migrate to the Apache
> Directory API from the legacy/unmaintained Novell Java API. We're most of
> the way there, but trying to deal correctly with referral following in the
> Apache API, so I have a couple of questions regarding how the Apache
> Directory Client functions...
Hi ! Responses inline...
>
> First, if I want to following referrals when retrieving search results, is
> it as simple as doing:
>
> request.followReferrals();
>
> (where request is an instance of SearchRequestImpl) and the client
> automatically follows the referrals? Or do I need to implement the
> referral following manually by detecting if a referral occurs and then
> writing the code to follow that referral?
Referral following is not yet included in teh LDAP API (cf
https://issues.apache.org/jira/browse/DIRAPI-61?jql=text%20~%20referral%20ORDER%20BY%20key%20ASC)
So the only solution for you, atm, is to implement it on your side :/
>
> Second, with regard to following referrals, assuming the above works to
> just make the client follow referrals, is there any way to limit the number
> of hops the client takes in following referrals? In the Novell API you can
> set a variety of controls, and one of them is the maximum number of "hops"
> taken when following referrals, which prevents the client from getting into
> a bad situation, like a recursive referral or an endless loop of
> referrals. I do not see anything similar in the Apache API for limiting -
> am I missing it?
No, you aren't missing anything. Cf
https://issues.apache.org/jira/browse/DIRAPI-179?jql=text%20~%20referral%20ORDER%20BY%20key%20ASC
>
> Finally, assuming there isn't anything built-in to the API to limit
> referral hops, I see that there is a getReferralLength() method in the
> ReferralImpl class, but it's unclear what is meant by "referral length?"
> Is this referring to the number of hops, or some other "length" associated
> with referrals?
Oh, it's a purely interal method that is used by the message encoder. It
contains the length of the BER encoded URL.
--
Emmanuel Lecharny
Symas.com
directory.apache.org