私はldaptorを使用してstartTLS経由でLDAPサーバーに接続しようとしています。インターネット上で検索し、自分自身をしようと、私はこのコードのスニペットに到着しました:ldaptorでstartTLSを使用するには?
from ldaptor.protocols.ldap import ldapclient, ldapsyntax, ldapconnector, distinguishedname
[...]
def main(base, serviceLocationOverrides):
c=ldapconnector.LDAPClientCreator(reactor, ldapclient.LDAPClient)
d = c.connect(base, serviceLocationOverrides)
d.addCallbacks(lambda proto: proto.startTLS(), error)
[...]
d.addErrback(error)
d.addBoth(lambda dummy: reactor.stop())
reactor.run()
が、コードはAssertionErrorがで終了します。私はincriminatedアサーションのためldaptorコードで見てみましたが、思われている
[Failure instance: Traceback: <type 'exceptions.AssertionError'>:
/usr/lib/python2.7/dist-packages/twisted/internet/base.py:1167:mainLoop
/usr/lib/python2.7/dist-packages/twisted/internet/base.py:789:runUntilCurrent
/usr/lib/python2.7/dist-packages/twisted/internet/defer.py:361:callback
/usr/lib/python2.7/dist-packages/twisted/internet/defer.py:455:_startRunCallbacks
--- <exception caught here> ---
/usr/lib/python2.7/dist-packages/twisted/internet/defer.py:542:_runCallbacks
/usr/lib/pymodules/python2.7/ldaptor/protocols/ldap/ldapclient.py:239:_startTLS
/usr/lib/pymodules/python2.7/ldaptor/protocols/pureldap.py:1278:__init__
/usr/lib/pymodules/python2.7/ldaptor/protocols/pureldap.py:1144:__init__
]
大丈夫。 ldaptorClient startTLSを使用して成功した人はいますか? コードスニペット?
ありがとうございましたさようなら
ご回答いただきありがとうございます。私は既にツイストベースのプロジェクトでpython-ldapを使用しており、ldaptorとの高集積化を望んでいました。私はdeferToThreadをldapの呼び出しごとに好きではなく、原子炉ループ内のpython-ldap呼び出しの非同期バージョンを扱うのは混乱している(私が見つけた唯一の方法は、ldap.callLaterを使用してldapサーバーの結果をポーリングすることでした今では) とにかく、あなたの役に立つ答えをありがとう。 – Ettore
これは2011年にも当てはまるかもしれませんが、2014年にはldaptorにStartTLSを使用することに問題はありませんでした。下の私の答えを見てください。 – Carl