0

LDAP サーバーへの OpenLDAP バインド要求のタイムアウトを適切に実装する方法を理解しようとしています。私が見つけたものから、これを行うには LDAP_OPT_TIMELIMIT と LDAP_OPT_TIMEOUT の 2 つの方法があるようです。私の主な混乱は、これらの違いが何であるかを理解しようとすることから来ています。

私が理解している限りでは、TIMELIMIT は LDAP 検索の要求/応答サイクルの時間制限を設定する LDAP 標準です。少なくとも Windows では、デフォルトは 120 秒です。

一方、TIMEOUT は OpenLDAP 固有のものであり、純粋にクライアント側で LDAP バインド要求をタイムアウトするために使用されます。これは実際に私が実装したいものに最も近いように聞こえます。議論から、TIMEOUT に ldap_set_opt を使用することは、2.4 まで完全には実装されていなかったことを知っています。からldap_simple_bind_s をタイムアウトさせるにはどうすればよいですか? 以前のバージョンの回避策は、非同期バインドを使用し、続いてタイムアウト付きの ldap_result を使用し、タイムアウトの場合は ldap_abandon_ext を使用してリクエストをドロップすることです。バージョン 2.4 の同期バインドのソース コードを調べても、この方法でタイムアウトを処理することはないようです。これは、ldap_abandon_ext を呼び出すことの重要性が何であるか疑問に思います。

回答や洞察をいただければ幸いです。

4

1 に答える 1

0

誰かがまだ OpenLDAP バインド タイムアウトを探している場合は、Aki の回答hereのメソッドを使用する必要があります。バインドに LDAPAsynConnection を使用する場合、ldapcpp ライブラリでも機能します。バインドする前に、getSessionHandle() メソッドを使用して有効にする必要があります。

于 2014-08-11T12:21:49.357 に答える