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);
   }
 }
 

Reply via email to