diff options
author | jortel <devnull@localhost> | 2010-02-02 22:10:50 +0000 |
---|---|---|
committer | jortel <devnull@localhost> | 2010-02-02 22:10:50 +0000 |
commit | f863d39816784bb25aca559c98a113bf57d78553 (patch) | |
tree | f39f0685cc7bfb4f7a8e82bee4471d543281d81a | |
parent | 2a8fcad2a93cd6674e4d367f1278bc1a86260a58 (diff) | |
download | suds-f863d39816784bb25aca559c98a113bf57d78553.tar.gz |
Fix basic http authentication when caching is enabled.
-rw-r--r-- | suds/__init__.py | 2 | ||||
-rw-r--r-- | suds/transport/http.py | 9 | ||||
-rw-r--r-- | suds/transport/https.py | 19 |
3 files changed, 22 insertions, 8 deletions
diff --git a/suds/__init__.py b/suds/__init__.py index cb2c02d..2b2e1d2 100644 --- a/suds/__init__.py +++ b/suds/__init__.py @@ -27,7 +27,7 @@ import sys # __version__ = '0.3.9' -__build__="(beta) R655-20100201" +__build__="(beta) R656-20100202" # # Exceptions diff --git a/suds/transport/http.py b/suds/transport/http.py index c4162b4..6d85b09 100644 --- a/suds/transport/http.py +++ b/suds/transport/http.py @@ -168,13 +168,20 @@ class HttpAuthenticated(HttpTransport): credentials on every http request. """ + def open(self, request): + self.addcredentials(request) + return HttpTransport.open(self, request) + def send(self, request): + self.addcredentials(request) + return HttpTransport.send(self, request) + + def addcredentials(self, request): credentials = self.credentials() if not (None in credentials): encoded = base64.encodestring(':'.join(credentials)) basic = 'Basic %s' % encoded[:-1] request.headers['Authorization'] = basic - return HttpTransport.send(self, request) def credentials(self): return (self.options.username, self.options.password)
\ No newline at end of file diff --git a/suds/transport/https.py b/suds/transport/https.py index 811b221..ed23fd5 100644 --- a/suds/transport/https.py +++ b/suds/transport/https.py @@ -55,22 +55,29 @@ class HttpAuthenticated(HttpTransport): HttpTransport.__init__(self, **kwargs) self.pm = u2.HTTPPasswordMgrWithDefaultRealm() - def u2handlers(self): - handlers = HttpTransport.u2handlers(self) - handlers.append(u2.HTTPBasicAuthHandler(self.pm)) - return handlers - def open(self, request): + self.addcredentials(request) + return HttpTransport.open(self, request) + + def send(self, request): + self.addcredentials(request) + return HttpTransport.send(self, request) + + def addcredentials(self, request): credentials = self.credentials() if not (None in credentials): u = credentials[0] p = credentials[1] self.pm.add_password(None, request.url, u, p) - return HttpTransport.open(self, request) def credentials(self): return (self.options.username, self.options.password) + def u2handlers(self): + handlers = HttpTransport.u2handlers(self) + handlers.append(u2.HTTPBasicAuthHandler(self.pm)) + return handlers + class WindowsHttpAuthenticated(HttpAuthenticated): """ |