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