Проверка подлинности Python Cassandra 2 с помощью SASL

Я пытаюсь подключить базу данных Cassandra 2, работающую по протоколу 2, из моего кода на python:

def auth_provider(ip):
    return dict(username=cassandra_username,
                password=cassandra_password)

def cassandradb():
    cluster =  Cluster(cassandra_cluster,
                       load_balancing_policy=RoundRobinPolicy(),
                       port=cassandra_port,
                       auth_provider=auth_provider)
    session = cluster.connect(cassandra_keyspace)
    ...

Код вызывает исключение:

cassandra.cluster.NoHostAvailable: 
    ('Unable to connect to any servers', 
       {'127.0.0.1': UnsupportedOperation('Credentials-based authentication 
        is not supported with protocol version 2 or higher.  Use the SASL
        authentication mechanism instead.',)})

Я никогда не работал с SASL, Как я должен измениться auth_provider или какой-то другой код?

2 ответа

Решение

Основная ветка драйвера была недавно исправлена. Вот рабочий пример:

from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider

auth_provider = PlainTextAuthProvider(username='cassandra', 
                                      password='cassandra')
cluster = Cluster(auth_provider=auth_provider)

https://datastax-oss.atlassian.net/browse/PYTHON-73

Проверка подлинности на основе SASL еще не реализована в драйвере Python 2.x. Вы можете использовать версию драйвера 1.x, которая прекрасно работает со всеми последними версиями cassandra.

Другие вопросы по тегам