summaryrefslogtreecommitdiff
path: root/kafka
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2017-10-14 17:22:00 -0700
committerDana Powers <dana.powers@gmail.com>2017-10-14 17:22:00 -0700
commit4ce4daa933c634484d41cae527b2e0d0992c1944 (patch)
tree8e6469537577f0435bc05412b7c575b51fa500c4 /kafka
parentbbab7aadb62517464420abfd1eed771af68fd7be (diff)
downloadkafka-python-auth_recv.tar.gz
validate sasl_mechanism against SaslHandShakeResponse enabled_mechanismsauth_recv
Diffstat (limited to 'kafka')
-rw-r--r--kafka/conn.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/kafka/conn.py b/kafka/conn.py
index 2f560d0..7ca2652 100644
--- a/kafka/conn.py
+++ b/kafka/conn.py
@@ -460,7 +460,12 @@ class BrokerConnection(object):
self.close(error=error)
return future.failure(error_type(self))
- if self.config['sasl_mechanism'] == 'PLAIN':
+ if self.config['sasl_mechanism'] not in response.enabled_mechanisms:
+ return future.failure(
+ Errors.UnsupportedSaslMechanismError(
+ 'Kafka broker does not support %s sasl mechanism. Enabled mechanisms are: %s'
+ % (self.config['sasl_mechanism'], response.enabled_mechanisms)))
+ elif self.config['sasl_mechanism'] == 'PLAIN':
return self._try_authenticate_plain(future)
elif self.config['sasl_mechanism'] == 'GSSAPI':
return self._try_authenticate_gssapi(future)