Hello twisted experts,

We are trying to add kerberos authentication to our existing twisted server.
 We haven't yet found a twisted specific library that can do this; any
pointers?

What we have found is python-krbV (https://fedorahosted.org/python-krbV/),
but we end up using it along with code like this to take over the socket
ourselves from twisted, when the client connects:

    self.transport.stopReading()
    self.transport.stopWriting()
    self.transport.socket.setblocking(1)

and then we use the self.transport.socket directly in blocking mode in
another thread (so it won't block the reactor).  In particular, we use code
like this to start the authentication process:

    ac = krbV.default_context().sendauth(self.transport.socket, ...)

…once the client has authenticated, we use:

    self.transport.socket.setblocking(0)
    self.transport.startReading()
    self.transport.startWriting()

to let twisted take over the socket again for the rest of the conversation.

So in the event there are no ready-to-go twisted libraries for kerberos, is
the above approach totally insane?
-- 
Benjamin Rutt
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to