Repository: calcite Updated Branches: refs/heads/master 25a7d938d -> d0f7dd35c
[CALCITE-1443] Add authentication support for Cassandra Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/d0f7dd35 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/d0f7dd35 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/d0f7dd35 Branch: refs/heads/master Commit: d0f7dd35ccecf6f2514276e0106b0e6516922b2b Parents: 25a7d93 Author: Michael Mior <mm...@uwaterloo.ca> Authored: Mon Oct 17 13:25:51 2016 -0400 Committer: Michael Mior <mm...@uwaterloo.ca> Committed: Mon Oct 17 22:24:38 2016 -0400 ---------------------------------------------------------------------- .../adapter/cassandra/CassandraSchema.java | 22 +++++++++++++++++++- .../cassandra/CassandraSchemaFactory.java | 4 +++- 2 files changed, 24 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/d0f7dd35/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java index f7ba238..d52697a 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java @@ -80,11 +80,31 @@ public class CassandraSchema extends AbstractSchema { * @param keyspace Cassandra keyspace name, e.g. "twissandra" */ public CassandraSchema(String host, String keyspace, SchemaPlus parentSchema, String name) { + this(host, keyspace, null, null, parentSchema, name); + } + + /** + * Creates a Cassandra schema. + * + * @param host Cassandra host, e.g. "localhost" + * @param keyspace Cassandra keyspace name, e.g. "twissandra" + * @param username Cassandra username + * @param password Cassandra password + */ + public CassandraSchema(String host, String keyspace, String username, String password, + SchemaPlus parentSchema, String name) { super(); this.keyspace = keyspace; try { - Cluster cluster = Cluster.builder().addContactPoint(host).build(); + Cluster cluster; + if (username != null && password != null) { + cluster = Cluster.builder().addContactPoint(host) + .withCredentials(username, password).build(); + } else { + cluster = Cluster.builder().addContactPoint(host).build(); + } + this.session = cluster.connect(keyspace); } catch (Exception e) { throw new RuntimeException(e); http://git-wip-us.apache.org/repos/asf/calcite/blob/d0f7dd35/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchemaFactory.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchemaFactory.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchemaFactory.java index c380721..136b81b 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchemaFactory.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchemaFactory.java @@ -35,7 +35,9 @@ public class CassandraSchemaFactory implements SchemaFactory { Map map = (Map) operand; String host = (String) map.get("host"); String keyspace = (String) map.get("keyspace"); - return new CassandraSchema(host, keyspace, parentSchema, name); + String username = (String) map.get("username"); + String password = (String) map.get("password"); + return new CassandraSchema(host, keyspace, username, password, parentSchema, name); } }