summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjortel <devnull@localhost>2010-02-02 22:10:50 +0000
committerjortel <devnull@localhost>2010-02-02 22:10:50 +0000
commitf863d39816784bb25aca559c98a113bf57d78553 (patch)
treef39f0685cc7bfb4f7a8e82bee4471d543281d81a
parent2a8fcad2a93cd6674e4d367f1278bc1a86260a58 (diff)
downloadsuds-f863d39816784bb25aca559c98a113bf57d78553.tar.gz
Fix basic http authentication when caching is enabled.
-rw-r--r--suds/__init__.py2
-rw-r--r--suds/transport/http.py9
-rw-r--r--suds/transport/https.py19
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):
"""