Merge pull request #1 from mgeiss/develop

added authentication provider
diff --git a/src/main/java/io/mifos/core/cassandra/core/CassandraSessionProvider.java b/src/main/java/io/mifos/core/cassandra/core/CassandraSessionProvider.java
index 7ce7850..5cf8d05 100644
--- a/src/main/java/io/mifos/core/cassandra/core/CassandraSessionProvider.java
+++ b/src/main/java/io/mifos/core/cassandra/core/CassandraSessionProvider.java
@@ -15,7 +15,9 @@
  */
 package io.mifos.core.cassandra.core;
 
+import com.datastax.driver.core.AuthProvider;
 import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.PlainTextAuthProvider;
 import com.datastax.driver.core.Session;
 import com.datastax.driver.core.exceptions.InvalidQueryException;
 import com.datastax.driver.mapping.Mapper;
@@ -154,8 +156,16 @@
   private Cluster getCluster(@Nonnull final String clusterName, @Nonnull final String contactPoints) {
     CodecRegistry.register(new LocalDateTimeCodec());
 
-    final Cluster.Builder clusterBuilder = Cluster.builder()
-        .withClusterName(clusterName);
+    final Cluster.Builder clusterBuilder = Cluster.builder().withClusterName(clusterName);
+
+    if (this.env.containsProperty(CassandraConnectorConstants.CLUSTER_USER_PROP)) {
+      final String user = this.env.getProperty(CassandraConnectorConstants.CLUSTER_USER_PROP);
+      final String pwd = this.env.getProperty(CassandraConnectorConstants.CLUSTER_PASSWORD_PROP);
+
+      final AuthProvider authProvider = new PlainTextAuthProvider(user, pwd);
+      clusterBuilder.withAuthProvider(authProvider);
+    }
+
     ContactPointUtils.process(clusterBuilder, contactPoints);
     return clusterBuilder.build();
   }
diff --git a/src/main/java/io/mifos/core/cassandra/util/CassandraConnectorConstants.java b/src/main/java/io/mifos/core/cassandra/util/CassandraConnectorConstants.java
index 2e6cc6d..66419ff 100644
--- a/src/main/java/io/mifos/core/cassandra/util/CassandraConnectorConstants.java
+++ b/src/main/java/io/mifos/core/cassandra/util/CassandraConnectorConstants.java
@@ -22,6 +22,9 @@
   String CLUSTER_NAME_PROP = "cassandra.clusterName";
   String CLUSTER_NAME_PROP_DEFAULT = "staging_cluster";
 
+  String CLUSTER_USER_PROP = "cassandra.cluster.user";
+  String CLUSTER_PASSWORD_PROP = "cassandra.cluster.pwd";
+
   String CONTACT_POINTS_PROP = "cassandra.contactPoints";
   String CONTACT_POINTS_PROP_DEFAULT = "127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042";