summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2010-08-11 11:58:49 +0000
committerRafael H. Schloming <rhs@apache.org>2010-08-11 11:58:49 +0000
commit1cc16b7d51a771b3be549fad8951c34c63c56c81 (patch)
tree17fc228d6eb6e099c9ab4d7cc6631fec31905c55 /python
parent743495d8c68b40caefa22b8be8087555954ee5f6 (diff)
downloadqpid-python-1cc16b7d51a771b3be549fad8951c34c63c56c81.tar.gz
fix error reporting for negotiation failure in sasl stub
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@984386 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python')
-rw-r--r--python/qpid/messaging/driver.py5
-rw-r--r--python/qpid/sasl.py2
2 files changed, 6 insertions, 1 deletions
diff --git a/python/qpid/messaging/driver.py b/python/qpid/messaging/driver.py
index 567871b96f..30cc2eb34d 100644
--- a/python/qpid/messaging/driver.py
+++ b/python/qpid/messaging/driver.py
@@ -691,7 +691,10 @@ class Engine:
mechs = [m for m in start.mechanisms if m in permitted]
else:
mechs = start.mechanisms
- mech, initial = self._sasl.start(" ".join(mechs))
+ try:
+ mech, initial = self._sasl.start(" ".join(mechs))
+ except sasl.SASLError, e:
+ raise AuthenticationFailure(text=str(e))
self.write_op(ConnectionStartOk(client_properties=CLIENT_PROPERTIES,
mechanism=mech, response=initial))
diff --git a/python/qpid/sasl.py b/python/qpid/sasl.py
index d4c15bd923..fed6deac20 100644
--- a/python/qpid/sasl.py
+++ b/python/qpid/sasl.py
@@ -89,6 +89,8 @@ class PlainClient:
return "PLAIN", "\0%s\0%s" % (self.attrs.get("username"), self.attrs.get("password"))
elif "ANONYMOUS" in mechs:
return "ANONYMOUS", "%s@%s" % (self.attrs.get("username"), socket.gethostname())
+ else:
+ raise SASLError("sasl negotiation failed: no mechanism agreed")
def step(self, challenge):
pass