mirror of
https://github.com/zhigang1992/mitmproxy.git
synced 2026-01-12 22:48:54 +08:00
Merge pull request #2118 from lymanZerga11/patch-3
Update proxyauth.py to add proxyauth metadata
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import binascii
|
||||
import weakref
|
||||
from typing import Optional
|
||||
from typing import Set # noqa
|
||||
from typing import MutableMapping # noqa
|
||||
from typing import Tuple
|
||||
|
||||
import passlib.apache
|
||||
@@ -46,7 +46,7 @@ class ProxyAuth:
|
||||
self.htpasswd = None
|
||||
self.singleuser = None
|
||||
self.mode = None
|
||||
self.authenticated = weakref.WeakSet() # type: Set[connections.ClientConnection]
|
||||
self.authenticated = weakref.WeakKeyDictionary() # type: MutableMapping[connections.ClientConnection, Tuple[str, str]]
|
||||
"""Contains all connections that are permanently authenticated after an HTTP CONNECT"""
|
||||
|
||||
def enabled(self) -> bool:
|
||||
@@ -153,11 +153,12 @@ class ProxyAuth:
|
||||
def http_connect(self, f: http.HTTPFlow) -> None:
|
||||
if self.enabled():
|
||||
if self.authenticate(f):
|
||||
self.authenticated.add(f.client_conn)
|
||||
self.authenticated[f.client_conn] = f.metadata["proxyauth"]
|
||||
|
||||
def requestheaders(self, f: http.HTTPFlow) -> None:
|
||||
if self.enabled():
|
||||
# Is this connection authenticated by a previous HTTP CONNECT?
|
||||
if f.client_conn in self.authenticated:
|
||||
f.metadata["proxyauth"] = self.authenticated[f.client_conn]
|
||||
return
|
||||
self.authenticate(f)
|
||||
|
||||
@@ -173,3 +173,4 @@ def test_handlers():
|
||||
f2 = tflow.tflow(client_conn=f.client_conn)
|
||||
up.requestheaders(f2)
|
||||
assert not f2.response
|
||||
assert f2.metadata["proxyauth"] == ('test', 'test')
|
||||
|
||||
Reference in New Issue
Block a user