Le 04/03/16 10:45, Radovan Semancik a écrit :
> Hi,
>
> I'm not sure if it is that easy to do inside the API. E.g. the
> referenced server may use different bind DN, password, even other
> connection parameters. I have recently implemented it in my ConnId
> connector. And it required to use quite a lot of "application"
> configuration magic to handle the referral connections at least a tiny
> bit correctly.
> The referral handling is obviously doable even now if the client is
> implemented well. E.g. like this (lines 109-119):
> https://github.com/Evolveum/connector-ldap/blob/master/src/main/java/com/evolveum/polygon/connector/ldap/search/DefaultSearchStrategy.java
>
> Referral handling is not that hard. Connection management seems to be
> harder:
> https://github.com/Evolveum/connector-ldap/blob/master/src/main/java/com/evolveum/polygon/connector/ldap/ConnectionManager.java
>
>
> So, I believe that we can do something simple in the API to be able to
> follow referrals when all the connection parameters (except for
> hostname/port) are the same. But even in that case it will include
> management of several connections to several servers. Any slightly
> complex case would be perhaps too hard to implement in the API anyway.
> And as there is usually some application-specific logic involved it is
> perhaps not the best candidate to invest the development time.
>
To be clear, the reaon why it's not yet in the API is because handling
things like infinite recursion (a referral calling another referal which
is the initial referal) is all but easy.