35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from __future__ import absolute_import
|
|
|
|
import platform
|
|
|
|
from kafka.sasl.gssapi import SaslMechanismGSSAPI
|
|
from kafka.sasl.msk import SaslMechanismAwsMskIam
|
|
from kafka.sasl.oauth import SaslMechanismOAuth
|
|
from kafka.sasl.plain import SaslMechanismPlain
|
|
from kafka.sasl.scram import SaslMechanismScram
|
|
from kafka.sasl.sspi import SaslMechanismSSPI
|
|
|
|
|
|
SASL_MECHANISMS = {}
|
|
|
|
|
|
def register_sasl_mechanism(name, klass, overwrite=False):
|
|
if not overwrite and name in SASL_MECHANISMS:
|
|
raise ValueError('Sasl mechanism %s already defined!' % name)
|
|
SASL_MECHANISMS[name] = klass
|
|
|
|
|
|
def get_sasl_mechanism(name):
|
|
return SASL_MECHANISMS[name]
|
|
|
|
|
|
register_sasl_mechanism('AWS_MSK_IAM', SaslMechanismAwsMskIam)
|
|
if platform.system() == 'Windows':
|
|
register_sasl_mechanism('GSSAPI', SaslMechanismSSPI)
|
|
else:
|
|
register_sasl_mechanism('GSSAPI', SaslMechanismGSSAPI)
|
|
register_sasl_mechanism('OAUTHBEARER', SaslMechanismOAuth)
|
|
register_sasl_mechanism('PLAIN', SaslMechanismPlain)
|
|
register_sasl_mechanism('SCRAM-SHA-256', SaslMechanismScram)
|
|
register_sasl_mechanism('SCRAM-SHA-512', SaslMechanismScram)
|