У меня есть многопоточный прокси-сервер, который должен иметь аутентификацию для запросов GET и POST. Это код обработчика запросов, который я написал до сих пор.
PORT = 20100
class Proxy(SimpleHTTPRequestHandler):
def do_GET(self):
try:
client_addr = self.client_address
print(">> PROXY_SERVER : ", client_addr)
print(">> PROXY_SERVER : GET : Handling Client ", str(self.client_address))
print(">> PROXY_SERVER : Thread Name:{}".format(threading.current_thread().name))
dest_ip = self.path.strip("http://").split(':')
print(dest_ip)
print(self.requestline)
if int(dest_ip[1]) not in range(20000,20201):
print(">> PROXY_SERVER : Invalid request")
threading.current_thread().join
exit()
if dest_ip in blacklist:
# if no auth:
print(">> PROXY_SERVER : Invalid request")
exit()
self.copyfile(urlopen(self.path), self.wfile)
print(">> PROXY_SERVER : SUCCESS")
except:
threading.current_thread().join
exit()
Когда я использую запрос скручивания, как показано,
curl 127.0.0.1:20111 -U USE:PASS
Я ожидал, что print(self.requestline)
получит имя пользователя: пароль используется, но единственный результат, который я получаю, это
GET http://127.0.0.1:20111/ HTTP/1.1