From 539ec2f774f3c73f2c214023b1785d00a5f8318b Mon Sep 17 00:00:00 2001 From: JianBo He Date: Tue, 21 Mar 2023 13:55:53 +0800 Subject: [PATCH] chore(bridge): cover username/password auth for cassandra bridges --- .ci/docker-compose-file/cassandra/cassandra.yaml | 2 +- ...andra-tcp.yaml => docker-compose-cassandra.yaml} | 6 +++--- .../test/emqx_ee_bridge_cassa_SUITE.erl | 4 ++-- .../test/emqx_ee_connector_cassa_SUITE.erl | 13 +++++++++---- scripts/ct/run.sh | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) rename .ci/docker-compose-file/{docker-compose-cassandra-tcp.yaml => docker-compose-cassandra.yaml} (63%) diff --git a/.ci/docker-compose-file/cassandra/cassandra.yaml b/.ci/docker-compose-file/cassandra/cassandra.yaml index 51a24f7a2..968efe5f6 100644 --- a/.ci/docker-compose-file/cassandra/cassandra.yaml +++ b/.ci/docker-compose-file/cassandra/cassandra.yaml @@ -100,7 +100,7 @@ batchlog_replay_throttle_in_kb: 1024 # users. It keeps usernames and hashed passwords in system_auth.roles table. # Please increase system_auth keyspace replication factor if you use this authenticator. # If using PasswordAuthenticator, CassandraRoleManager must also be used (see below) -authenticator: AllowAllAuthenticator +authenticator: PasswordAuthenticator # Authorization backend, implementing IAuthorizer; used to limit access/provide permissions # Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer, diff --git a/.ci/docker-compose-file/docker-compose-cassandra-tcp.yaml b/.ci/docker-compose-file/docker-compose-cassandra.yaml similarity index 63% rename from .ci/docker-compose-file/docker-compose-cassandra-tcp.yaml rename to .ci/docker-compose-file/docker-compose-cassandra.yaml index ac45af02f..393a5cac7 100644 --- a/.ci/docker-compose-file/docker-compose-cassandra-tcp.yaml +++ b/.ci/docker-compose-file/docker-compose-cassandra.yaml @@ -22,9 +22,9 @@ services: - -c - | /opt/cassandra/bin/cassandra -f -R > /cassandra.log & - /opt/cassandra/bin/cqlsh -e "CREATE KEYSPACE mqtt WITH REPLICATION = { 'class':'SimpleStrategy','replication_factor':1};" - while [[ $$? -ne 0 ]];do sleep 5; /opt/cassandra/bin/cqlsh -e "CREATE KEYSPACE mqtt WITH REPLICATION = { 'class':'SimpleStrategy','replication_factor':1};"; done - /opt/cassandra/bin/cqlsh -e "describe keyspaces;" + /opt/cassandra/bin/cqlsh -u cassandra -p cassandra -e "CREATE KEYSPACE mqtt WITH REPLICATION = { 'class':'SimpleStrategy','replication_factor':1};" + while [[ $$? -ne 0 ]];do sleep 5; /opt/cassandra/bin/cqlsh -u cassandra -p cassandra -e "CREATE KEYSPACE mqtt WITH REPLICATION = { 'class':'SimpleStrategy','replication_factor':1};"; done + /opt/cassandra/bin/cqlsh -u cassandra -p cassandra -e "describe keyspaces;" tail -f /cassandra.log networks: - emqx_bridge diff --git a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_cassa_SUITE.erl b/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_cassa_SUITE.erl index b99bd95e0..666cd0caf 100644 --- a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_cassa_SUITE.erl +++ b/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_cassa_SUITE.erl @@ -33,8 +33,8 @@ % DB defaults -define(CASSA_KEYSPACE, "mqtt"). --define(CASSA_USERNAME, "root"). --define(CASSA_PASSWORD, "public"). +-define(CASSA_USERNAME, "cassandra"). +-define(CASSA_PASSWORD, "cassandra"). -define(BATCH_SIZE, 10). %% cert files for client diff --git a/lib-ee/emqx_ee_connector/test/emqx_ee_connector_cassa_SUITE.erl b/lib-ee/emqx_ee_connector/test/emqx_ee_connector_cassa_SUITE.erl index 4436038d9..81b9e3859 100644 --- a/lib-ee/emqx_ee_connector/test/emqx_ee_connector_cassa_SUITE.erl +++ b/lib-ee/emqx_ee_connector/test/emqx_ee_connector_cassa_SUITE.erl @@ -37,6 +37,11 @@ %% %% sudo docker run --rm -d --name cassandra --network host cassandra:3.11.14 +%% Cassandra default username & password once enable `authenticator: PasswordAuthenticator` +%% in cassandra config +-define(CASSA_USERNAME, <<"cassandra">>). +-define(CASSA_PASSWORD, <<"cassandra">>). + all() -> emqx_common_test_helpers:all(?MODULE). @@ -62,8 +67,8 @@ init_per_suite(Config) -> {ok, Conn} = ecql:connect([ {nodes, cassandra_servers()}, - {username, <<"admin">>}, - {password, <<"public">>}, + {username, ?CASSA_USERNAME}, + {password, ?CASSA_PASSWORD}, {keyspace, "mqtt"} ]), ecql:close(Conn), @@ -175,8 +180,8 @@ cassandra_config() -> #{ auto_reconnect => true, keyspace => <<"mqtt">>, - username => <<"default">>, - password => <<"public">>, + username => ?CASSA_USERNAME, + password => ?CASSA_PASSWORD, pool_size => 8, servers => iolist_to_binary( io_lib:format( diff --git a/scripts/ct/run.sh b/scripts/ct/run.sh index 10eeff727..38d838985 100755 --- a/scripts/ct/run.sh +++ b/scripts/ct/run.sh @@ -171,7 +171,7 @@ for dep in ${CT_DEPS}; do FILES+=( '.ci/docker-compose-file/docker-compose-dynamo.yaml' ) ;; cassandra) - FILES+=( '.ci/docker-compose-file/docker-compose-cassandra-tcp.yaml' ) + FILES+=( '.ci/docker-compose-file/docker-compose-cassandra.yaml' ) ;; *) echo "unknown_ct_dependency $dep"