2

次のコードで (文書化されていない) 例外が発生しないようにするにはどうすればよいですか?

import ldap
import ldap.sasl

connection = ldap.initialize('ldaps://server:636', trace_level=0)
connection.set_option(ldap.OPT_REFERRALS, 0)
connection.protocol_version = 3
sasl_auth = ldap.sasl.external()
connection.sasl_interactive_bind_s('', sasl_auth)

baseDN = 'ou=org.com,ou=xx,dc=xxx,dc=com'
filter = 'objectclass=*'
try:
  result = connection.search_s(baseDN, ldap.SCOPE_SUBTREE, filter)
except ldap.REFERRAL, e:
  print "referral"
except ldap.LDAPError, e:
  print "Ldaperror"

例に示されている baseDN が参照である場合があります。このコードを実行するとreferral、出力として得られます。

私が望むのは、python-ldapが奇妙な例外をスローすることなくそれをスキップまたは無視することです(それに関するドキュメントが見つかりません)?

(これが役立つかどうかはわかりません) ツリーの上位の baseDN を検索しているときに問題が発生しました。「ou = xx、dc = xxx、dc = com」を検索していたときに、開発環境ですべてがうまく機能しているときに、本番環境でフリーズし始めました。私がそれを見始めたとき、紹介ブランチでフリーズしていることがわかりました。リフェラルを無視するように python-ldap に指示するにはどうすればよいですか? 上記のコードは、私が望むようには機能しません。

4

1 に答える 1