[Twisted-Python] ldaptor problem with STARTTLS and python 3
Adi Roiban
adi at roiban.ro
Tue May 28 04:38:47 MDT 2019
On Tue, 28 May 2019 at 11:22, Thomas Westfeld
<thomas.westfeld at currenta.de> wrote:
>
> Dear all,
>
> I am experiencing an error when trying to use the quick usage example posted on the ldaptor github page https://github.com/twisted/ldaptor . I have included the starttls command to promote the connection to an encrypted one, but I am experiencing an deprecation warning:
>
> DeprecationWarning: LDAPStartTLSInvalidResponseName.__str__ method is deprecated and will not be used for getting bytes representation in the future releases, use LDAPStartTLSInvalidResponseName.toWire instead
> category=DeprecationWarning)
>
> This puzzles me as I cannot track this error down. The usual strategy to introduce debugging print statements or start the debugger like "import pdb; pdb.set_trace()" does not work. I would appreciate help here how to debug this deferred code.
>
> Besides this warning I am receiving no output whatsoever. Also print statements in the example method do not print anything, which is strange to me.
>
> To debug it on a networking level, I have wiresharked the ldap communication and it seems fine (see below):
>
> REQUEST
>
> Transmission Control Protocol, Src Port: 53964, Dst Port: 389, Seq: 1, Ack: 1, Len: 31
> Lightweight Directory Access Protocol
> LDAPMessage extendedReq(1)
> messageID: 1
> protocolOp: extendedReq (23)
> extendedReq
> requestName: 1.3.6.1.4.1.1466.20037 (LDAP_START_TLS_OID)
> [Response In: 2587]
>
> RESPONSE
>
> Transmission Control Protocol, Src Port: 389, Dst Port: 53964, Seq: 1, Ack: 32, Len: 46
> Lightweight Directory Access Protocol
> LDAPMessage extendedResp(1)
> messageID: 1
> protocolOp: extendedResp (24)
> extendedResp
> resultCode: success (0)
> matchedDN:
> errorMessage:
> responseName: 1.3.6.1.4.1.1466.20037 (LDAP_START_TLS_OID)
> [Response To: 2581]
> [Time: 0.245555000 seconds]
>
> I have posted the example code with the starttls command in this gist:
>
> https://gist.github.com/westfeld/bb1d5e8727ce13910623933e041e9782
It looks like a bug.
With the Python3 migration the usage of the implicit __str__ for
serialization/marshaling of the LDAP messages was removed.
Please add a new issue/ticket/bug in Github for ldaptor.
I am debugging these things by patching the ldap code and adding a PDB call here
https://github.com/twisted/ldaptor/blob/d3c191921bd32c359a3e4974c2251f9af852ab2b/ldaptor/_encoder.py#L56
then you can go up and see where str is called, and consider if it
should be repalced with .toWire()
Cheers
--
Adi Roiban
More information about the Twisted-Python
mailing list