mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-05-02 20:03:19 +02:00
Add support for Cassandra auth with SSL check (#318)
Following recommended approach in Datastax documenation I've added the necessary TLS/SSL check https://docs.datastax.com/en/developer/python-driver/3.17/security/index.html
This commit is contained in:
parent
322725be04
commit
fe422b2b95
3 changed files with 10 additions and 3 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
from cassandra.cluster import Cluster
|
from cassandra.cluster import Cluster
|
||||||
from cassandra.auth import PlainTextAuthProvider
|
from cassandra.auth import PlainTextAuthProvider
|
||||||
|
from ssl import SSLContext, PROTOCOL_TLSv1_2
|
||||||
|
|
||||||
class TrustGraph:
|
class TrustGraph:
|
||||||
|
|
||||||
|
|
@ -17,8 +18,9 @@ class TrustGraph:
|
||||||
self.username = username
|
self.username = username
|
||||||
|
|
||||||
if username and password:
|
if username and password:
|
||||||
|
ssl_context = SSLContext(PROTOCOL_TLSv1_2)
|
||||||
auth_provider = PlainTextAuthProvider(username=username, password=password)
|
auth_provider = PlainTextAuthProvider(username=username, password=password)
|
||||||
self.cluster = Cluster(hosts, auth_provider=auth_provider)
|
self.cluster = Cluster(hosts, auth_provider=auth_provider, ssl_context=ssl_context)
|
||||||
else:
|
else:
|
||||||
self.cluster = Cluster(hosts)
|
self.cluster = Cluster(hosts)
|
||||||
self.session = self.cluster.connect()
|
self.session = self.cluster.connect()
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from .. exceptions import RequestError
|
||||||
from cassandra.cluster import Cluster
|
from cassandra.cluster import Cluster
|
||||||
from cassandra.auth import PlainTextAuthProvider
|
from cassandra.auth import PlainTextAuthProvider
|
||||||
from cassandra.query import BatchStatement
|
from cassandra.query import BatchStatement
|
||||||
|
from ssl import SSLContext, PROTOCOL_TLSv1_2
|
||||||
import uuid
|
import uuid
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
@ -21,12 +22,14 @@ class TableStore:
|
||||||
print("Connecting to Cassandra...", flush=True)
|
print("Connecting to Cassandra...", flush=True)
|
||||||
|
|
||||||
if cassandra_user and cassandra_password:
|
if cassandra_user and cassandra_password:
|
||||||
|
ssl_context = SSLContext(PROTOCOL_TLSv1_2)
|
||||||
auth_provider = PlainTextAuthProvider(
|
auth_provider = PlainTextAuthProvider(
|
||||||
username=cassandra_user, password=cassandra_password
|
username=cassandra_user, password=cassandra_password
|
||||||
)
|
)
|
||||||
self.cluster = Cluster(
|
self.cluster = Cluster(
|
||||||
cassandra_host,
|
cassandra_host,
|
||||||
auth_provider=auth_provider
|
auth_provider=auth_provider,
|
||||||
|
ssl_context=ssl_context
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.cluster = Cluster(cassandra_host)
|
self.cluster = Cluster(cassandra_host)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import argparse
|
||||||
import time
|
import time
|
||||||
from cassandra.cluster import Cluster
|
from cassandra.cluster import Cluster
|
||||||
from cassandra.auth import PlainTextAuthProvider
|
from cassandra.auth import PlainTextAuthProvider
|
||||||
|
from ssl import SSLContext, PROTOCOL_TLSv1_2
|
||||||
|
|
||||||
from .... schema import Rows
|
from .... schema import Rows
|
||||||
from .... schema import rows_store_queue
|
from .... schema import rows_store_queue
|
||||||
|
|
@ -17,6 +18,7 @@ from .... log_level import LogLevel
|
||||||
from .... base import Consumer
|
from .... base import Consumer
|
||||||
|
|
||||||
module = ".".join(__name__.split(".")[1:-1])
|
module = ".".join(__name__.split(".")[1:-1])
|
||||||
|
ssl_context = SSLContext(PROTOCOL_TLSv1_2)
|
||||||
|
|
||||||
default_input_queue = rows_store_queue
|
default_input_queue = rows_store_queue
|
||||||
default_subscriber = module
|
default_subscriber = module
|
||||||
|
|
@ -45,7 +47,7 @@ class Processor(Consumer):
|
||||||
|
|
||||||
if graph_username and graph_password:
|
if graph_username and graph_password:
|
||||||
auth_provider = PlainTextAuthProvider(username=graph_username, password=graph_password)
|
auth_provider = PlainTextAuthProvider(username=graph_username, password=graph_password)
|
||||||
self.cluster = Cluster(graph_host.split(","), auth_provider=auth_provider)
|
self.cluster = Cluster(graph_host.split(","), auth_provider=auth_provider, ssl_context=ssl_context)
|
||||||
else:
|
else:
|
||||||
self.cluster = Cluster(graph_host.split(","))
|
self.cluster = Cluster(graph_host.split(","))
|
||||||
self.session = self.cluster.connect()
|
self.session = self.cluster.connect()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue