summaryrefslogtreecommitdiff
path: root/kafka/conn.py
diff options
context:
space:
mode:
authorthe-sea <huhaiyang2@huawei.com>2018-08-31 21:03:26 +0800
committerDana Powers <dana.powers@gmail.com>2018-08-31 06:03:26 -0700
commit36b53f487778e919dfe6a5940dc25c552444cc7c (patch)
treeeeb843fbdaf059c964a5f16b5b8ba82735ea43d1 /kafka/conn.py
parenta7d3063d5fa1c3cb2a76c16231bb3028a6f8cde9 (diff)
downloadkafka-python-36b53f487778e919dfe6a5940dc25c552444cc7c.tar.gz
add kerberos domain name config for gssapi sasl mechanism handshake (#1542)
Diffstat (limited to 'kafka/conn.py')
-rw-r--r--kafka/conn.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/kafka/conn.py b/kafka/conn.py
index 122297b..ccaa2ed 100644
--- a/kafka/conn.py
+++ b/kafka/conn.py
@@ -176,6 +176,8 @@ class BrokerConnection(object):
Default: None
sasl_kerberos_service_name (str): Service name to include in GSSAPI
sasl mechanism handshake. Default: 'kafka'
+ sasl_kerberos_domain_name (str): kerberos domain name to use in GSSAPI
+ sasl mechanism handshake. Default: one of bootstrap servers
"""
DEFAULT_CONFIG = {
@@ -206,7 +208,8 @@ class BrokerConnection(object):
'sasl_mechanism': 'PLAIN',
'sasl_plain_username': None,
'sasl_plain_password': None,
- 'sasl_kerberos_service_name': 'kafka'
+ 'sasl_kerberos_service_name': 'kafka',
+ 'sasl_kerberos_domain_name': None
}
SECURITY_PROTOCOLS = ('PLAINTEXT', 'SSL', 'SASL_PLAINTEXT', 'SASL_SSL')
SASL_MECHANISMS = ('PLAIN', 'GSSAPI')
@@ -567,7 +570,8 @@ class BrokerConnection(object):
return future.success(True)
def _try_authenticate_gssapi(self, future):
- auth_id = self.config['sasl_kerberos_service_name'] + '@' + self.host
+ kerberos_damin_name = self.config['sasl_kerberos_domain_name'] or self.host
+ auth_id = self.config['sasl_kerberos_service_name'] + '@' + kerberos_damin_name
gssapi_name = gssapi.Name(
auth_id,
name_type=gssapi.NameType.hostbased_service