Phantom Scala Cassandra连接器:如何指定节点的端口,用户名和密码

Cia*_*an0 1 scala cassandra phantom-dsl

我正在尝试使用websudos 幻像

有谁知道如何指定Cassandra的连接参数,如用户名和密码?

谢谢

fla*_*ian 6

Phantom尚未在phantom-connectors框架中支持Kerberos身份验证,但它在未来几周的路线图中.

但是,使用连接器时,可以覆盖createCluster方法并以任何方式连接到群集.

object CustomCassandraManger extends DefaultCasandraManager {

  override protected[this] def createCluster: Cluster = {
    val inets = hosts.toSeq.map(_.getAddress)

    Cluster.builder()
     .addContactPoints(inets: _*)
     ...
     .withUsernameAndPassword(..)
  }
}
Run Code Online (Sandbox Code Playgroud)

我可能没有使用正确的方法,但这就是你如何控制集群的创建方式.然后,您只需要在连接器中注入此管理器:

trait MyConnector extends SimpleCassandraConnector {
  override val manager = CustomCassandraMananger
}
Run Code Online (Sandbox Code Playgroud)

然后将这个连接器混合到所有表中,就像使用幻像时一样.

幻影的最新版本

在更新版本的幻像中,API基于ContactPoints,您可以ClusterBuilder使用以下DSL 指定所需的任何选项.

import com.datastax.driver.core.PlainTextAuthProvider

lazy val local = ContactPoint.local.withClusterBuilder(
  _.withAuthProvider(new PlainTextAuthProvider("user", "pass"))
).keySpace("phantom")
Run Code Online (Sandbox Code Playgroud)