kafka-python 2.2.9__py2.py3-none-any.whl → 2.2.10__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
kafka/conn.py CHANGED
@@ -313,7 +313,7 @@ class BrokerConnection(object):
313
313
 
314
314
  def _init_sasl_mechanism(self):
315
315
  if self.config['security_protocol'] in ('SASL_PLAINTEXT', 'SASL_SSL'):
316
- self._sasl_mechanism = get_sasl_mechanism(self.config['sasl_mechanism'])(**self.config)
316
+ self._sasl_mechanism = get_sasl_mechanism(self.config['sasl_mechanism'])(host=self.host, **self.config)
317
317
  else:
318
318
  self._sasl_mechanism = None
319
319
 
kafka/sasl/gssapi.py CHANGED
@@ -26,14 +26,15 @@ class SaslMechanismGSSAPI(SaslMechanism):
26
26
  raise ValueError('sasl_kerberos_service_name or sasl_kerberos_name required for GSSAPI sasl configuration')
27
27
  self._is_done = False
28
28
  self._is_authenticated = False
29
+ self.gssapi_name = None
29
30
  if config.get('sasl_kerberos_name', None) is not None:
30
31
  self.auth_id = str(config['sasl_kerberos_name'])
32
+ if isinstance(config['sasl_kerberos_name'], gssapi.Name):
33
+ self.gssapi_name = config['sasl_kerberos_name']
31
34
  else:
32
35
  kerberos_domain_name = config.get('sasl_kerberos_domain_name', '') or config.get('host', '')
33
36
  self.auth_id = config['sasl_kerberos_service_name'] + '@' + kerberos_domain_name
34
- if isinstance(config.get('sasl_kerberos_name', None), gssapi.Name):
35
- self.gssapi_name = config['sasl_kerberos_name']
36
- else:
37
+ if self.gssapi_name is None:
37
38
  self.gssapi_name = gssapi.Name(self.auth_id, name_type=gssapi.NameType.hostbased_service).canonicalize(gssapi.MechType.kerberos)
38
39
  self._client_ctx = gssapi.SecurityContext(name=self.gssapi_name, usage='initiate')
39
40
  self._next_token = self._client_ctx.step(None)
@@ -43,9 +44,8 @@ class SaslMechanismGSSAPI(SaslMechanism):
43
44
  # so mark is_done after the final auth_bytes are provided
44
45
  # in practice we'll still receive a response when using SaslAuthenticate
45
46
  # but not when using the prior unframed approach.
46
- if self._client_ctx.complete:
47
+ if self._is_authenticated:
47
48
  self._is_done = True
48
- self._is_authenticated = True
49
49
  return self._next_token or b''
50
50
 
51
51
  def receive(self, auth_bytes):
@@ -74,6 +74,13 @@ class SaslMechanismGSSAPI(SaslMechanism):
74
74
  ]
75
75
  # add authorization identity to the response, and GSS-wrap
76
76
  self._next_token = self._client_ctx.wrap(b''.join(message_parts), False).message
77
+ # We need to identify the last token in auth_bytes();
78
+ # we can't rely on client_ctx.complete because it becomes True after generating
79
+ # the second-to-last token (after calling .step(auth_bytes) for the final time)
80
+ # We could introduce an additional state variable (i.e., self._final_token),
81
+ # but instead we just set _is_authenticated. Since the plugin interface does
82
+ # not read is_authenticated() until after is_done() is True, this should be fine.
83
+ self._is_authenticated = True
77
84
 
78
85
  def is_done(self):
79
86
  return self._is_done
kafka/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '2.2.9'
1
+ __version__ = '2.2.10'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 2.2.9
3
+ Version: 2.2.10
4
4
  Summary: Pure Python client for Apache Kafka
5
5
  Author-email: Dana Powers <dana.powers@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/dpkp/kafka-python
@@ -2,13 +2,13 @@ kafka/__init__.py,sha256=4dvHKZAxmD_4tfJ5wGcRV2X78vPcm8vsUoqceULevjA,1077
2
2
  kafka/client_async.py,sha256=R8q_rRpG3RrYrRmcZo7XgO2oSdpLJATNcq8w-1vIJ_8,56878
3
3
  kafka/cluster.py,sha256=N3_Al4We4ZhWzz6lVHy6SfqwDZfQy73iV7Qg4g4nxRs,16745
4
4
  kafka/codec.py,sha256=8NZpnehzNrhSBIjzbPVSvyFbSeLAqEntE7BfVHu-_9I,10036
5
- kafka/conn.py,sha256=pDmzcn-m8oiFdvYh-97qbRLEBXh0sSl9nT74VIIRuEE,69472
5
+ kafka/conn.py,sha256=_yP-pGwEbkDmeutMOZjVilQXAnF4PWF_CDc60qC3DuE,69488
6
6
  kafka/errors.py,sha256=qX2Fp0qawU_HBNcZCwB7EDCmx3C2PehrETi6qSEJHmk,33290
7
7
  kafka/future.py,sha256=ZQStbfUYIPJRrgMfAWxxjrIRVxsw4WCtSR0J0bkyGno,2847
8
8
  kafka/socks5_wrapper.py,sha256=6woOaCTJXJ5e89_zdyW5BjOpyE4rCbYFH-kd-FeuPuk,9827
9
9
  kafka/structs.py,sha256=SJGzmLdV21jZyQ7247k0WFy16UiusgTHK3I-e4qzI-E,3058
10
10
  kafka/util.py,sha256=EnzCJuRkQ6Kh2lIdNwFKvT4PddkZ5bzop4ooGGIhe5g,4366
11
- kafka/version.py,sha256=PLfhtFzYo-Q28-0b7ctZlZxf03WI4mwwRfMHSMxNmd8,22
11
+ kafka/version.py,sha256=lfEF2tRAjIf7jwdP4hzCfb5zYNcswMyGc2yOh47sA9k,23
12
12
  kafka/admin/__init__.py,sha256=S_XxqyyV480_yXhttK79XZqNAmZyXRjspd3SoqYykE8,720
13
13
  kafka/admin/acl_resource.py,sha256=ak_dUsSni4SyP0ORbSKenZpwTy0Ykxq3FSt_9XgLR8k,8265
14
14
  kafka/admin/client.py,sha256=RabA8l8Im3iBEXgPVkiofNW6QyeatQHaymBWFZ8Sxkw,78929
@@ -107,7 +107,7 @@ kafka/record/memory_records.py,sha256=b7RFxvaQ93drXSk3o3_YB3FQlVoESoBlGj3Z5PD25n
107
107
  kafka/record/util.py,sha256=LDajBWdYVetmXts_t9Q76CxEx7njgC9LnjMgz9yPEMM,3556
108
108
  kafka/sasl/__init__.py,sha256=wUUGIKRe52J6Qekj7hSypg44vWTrkYsEdVafQC7cX5s,1106
109
109
  kafka/sasl/abc.py,sha256=R0BZOk3AYEGyehiGbbg-LMRvFAlWZsh0fBiESgUpBYw,657
110
- kafka/sasl/gssapi.py,sha256=joeQjWVDujcG8cdaRdUagSy_KoPhpkzXuVDi8OBqId0,4019
110
+ kafka/sasl/gssapi.py,sha256=HqN9yikeT75zvq42SxuKhsH1WAMT3ZaT9j-E6LAwggw,4591
111
111
  kafka/sasl/msk.py,sha256=ndUZqPTdgItptiRimVlUAGuFZz1cerQc1KufYMIcPkg,7684
112
112
  kafka/sasl/oauth.py,sha256=dh87tVi-dlS5lIzgYsC4m7IXUhlLdejaMb9Ua6oYaB0,3425
113
113
  kafka/sasl/plain.py,sha256=PMfoWT856wx6nF_LhpfPKEnD7BRNx5l6rDhAqxBnMWU,1317
@@ -120,7 +120,7 @@ kafka/vendor/enum34.py,sha256=-u-lxAiJMt6ru4Do7NUDY9OpeWkYJMksb2xengJawFE,31204
120
120
  kafka/vendor/selectors34.py,sha256=gxejLO4eXf8mRSGXaQiknPig3GdX1rtsZiYOQJVuAy8,20594
121
121
  kafka/vendor/six.py,sha256=lLBa9_HrANP5BMZ7twEzg1M3wofwPmXyptuWmHX0brY,34826
122
122
  kafka/vendor/socketpair.py,sha256=Fi3PoY1Okkppab720wFk1BhHXyjcw7hi5DwhqrYZH2Y,2737
123
- kafka_python-2.2.9.dist-info/METADATA,sha256=HsbiFii51H1LeFT67mMZFvpspHlK360D-PnMjXlYw5A,9951
124
- kafka_python-2.2.9.dist-info/WHEEL,sha256=egKm5cKfE6OqlHwodY8Jjp4yqZDBXgsj09UsV5ojd_U,109
125
- kafka_python-2.2.9.dist-info/top_level.txt,sha256=IivJz7l5WHdLNDT6RIiVAlhjQzYRwGqBBmKHZ7WjPeM,6
126
- kafka_python-2.2.9.dist-info/RECORD,,
123
+ kafka_python-2.2.10.dist-info/METADATA,sha256=LNkDuppqocj9ondpnWf2PmlMQkYN5w-K8nnozxZKKmQ,9952
124
+ kafka_python-2.2.10.dist-info/WHEEL,sha256=egKm5cKfE6OqlHwodY8Jjp4yqZDBXgsj09UsV5ojd_U,109
125
+ kafka_python-2.2.10.dist-info/top_level.txt,sha256=IivJz7l5WHdLNDT6RIiVAlhjQzYRwGqBBmKHZ7WjPeM,6
126
+ kafka_python-2.2.10.dist-info/RECORD,,