Pass cassandra username and password to the Astyanax driver.
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraClusterImpl.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraClusterImpl.java
index cc52f1b..5b59a98 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraClusterImpl.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraClusterImpl.java
@@ -32,6 +32,7 @@
 import com.netflix.astyanax.connectionpool.NodeDiscoveryType;
 import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
 import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl;
+import com.netflix.astyanax.connectionpool.impl.SimpleAuthenticationCredentials;
 import com.netflix.astyanax.connectionpool.impl.Slf4jConnectionPoolMonitorImpl;
 import com.netflix.astyanax.impl.AstyanaxConfigurationImpl;
 import com.netflix.astyanax.thrift.ThriftFamilyFactory;
@@ -158,12 +159,33 @@
 
     private ConnectionPoolConfiguration getConnectionPoolConfig ( final String poolName, final int poolSize ){
 
-        return new ConnectionPoolConfigurationImpl( poolName )
-            .setPort( cassandraFig.getThriftPort() )
-            .setLocalDatacenter( cassandraFig.getLocalDataCenter() )
-            .setMaxConnsPerHost( poolSize )
-            .setSeeds( cassandraFig.getHosts() )
-            .setSocketTimeout( cassandraFig.getTimeout() );
+        ConnectionPoolConfiguration config;
+        final String username = cassandraFig.getUsername();
+        final String password = cassandraFig.getPassword();
+
+        if ( username != null && !username.isEmpty() && password != null && !password.isEmpty() ){
+
+            config = new ConnectionPoolConfigurationImpl( poolName )
+                .setPort( cassandraFig.getThriftPort() )
+                .setLocalDatacenter( cassandraFig.getLocalDataCenter() )
+                .setMaxConnsPerHost( poolSize )
+                .setSeeds( cassandraFig.getHosts() )
+                .setSocketTimeout( cassandraFig.getTimeout() )
+                .setAuthenticationCredentials(new SimpleAuthenticationCredentials( username, password));
+
+        } else {
+
+            // create instance of the connection pool without credential if they are not set
+            config = new ConnectionPoolConfigurationImpl( poolName )
+                .setPort( cassandraFig.getThriftPort() )
+                .setLocalDatacenter( cassandraFig.getLocalDataCenter() )
+                .setMaxConnsPerHost( poolSize )
+                .setSeeds( cassandraFig.getHosts() )
+                .setSocketTimeout( cassandraFig.getTimeout() );
+        }
+
+
+        return config;
 
     }
 
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraFig.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraFig.java
index e30ba9c..b00eca8 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraFig.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/CassandraFig.java
@@ -38,6 +38,8 @@
     String WRITE_CL = "usergrid.write.cl";
     String SHARD_VALUES = "cassandra.shardvalues";
     String THRIFT_TRANSPORT_SIZE = "cassandra.thrift.transport.frame";
+    String USERNAME = "cassandra.username";
+    String PASSWORD = "cassandra.password";
 
     // locks cassandra properties
     String LOCKS_KEYSPACE_NAME = "cassandra.lock.keyspace";
@@ -78,6 +80,12 @@
     @Key( "cassandra.datacenter.local" )
     String getLocalDataCenter();
 
+    @Key( USERNAME )
+    String getUsername();
+
+    @Key( PASSWORD )
+    String getPassword();
+
     @Key( "cassandra.connections" )
     @Default( DEFAULT_CONNECTION_POOLSIZE )
     int getConnections();