Проверка подлинности 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.