如何切换此代理以使用代理身份验证?

时间:2009-08-26 19:15:16

标签: python authentication proxy twisted

我正在尝试修改我的简单Twisted Web代理以使用“代理验证”(用户名/密码)而不是当前基于IP的验证。问题是,我是Twisted的新手,甚至不知道从哪里开始。

这是我的工厂类。

class ProxyFactory(http.HTTPFactory):
    def __init__(self, ip, internal_ips):
        http.HTTPFactory.__init__(self)
        self.ip = ip
        self.protocol = proxy.Proxy
        self.INTERNAL_IPS = internal_ips


    def buildProtocol(self, addr):
        print addr
        # IP based authentication -- need to switch this to use standard Proxy password authentication
        if addr.host not in self.INTERNAL_IPS:
            return None
        #p = protocol.ServerFactory.buildProtocol(self, addr)
        p = self.protocol()
        p.factory = self
        # timeOut needs to be on the Protocol instance cause
        # TimeoutMixin expects it there
        p.timeOut = self.timeOut
        return p

知道我需要做些什么来使这项工作?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

不久之前在Twisted邮件列表上出现了类似的问题:

http://www.mail-archive.com/twisted-python@twistedmatrix.com/msg01080.html

正如我在那里提到的,您可能需要对一些twisted.proxy类进行子类化,以便他们了解Proxy-Authenticate和Proxy-Authorization标头。