我正在尝试修改我的简单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
知道我需要做些什么来使这项工作?谢谢你的帮助!
答案 0 :(得分:1)
不久之前在Twisted邮件列表上出现了类似的问题:
http://www.mail-archive.com/twisted-python@twistedmatrix.com/msg01080.html
正如我在那里提到的,您可能需要对一些twisted.proxy类进行子类化,以便他们了解Proxy-Authenticate和Proxy-Authorization标头。