【问题标题】:How to connect to Cassandra 5.1 with Authentication from Java如何使用 Java 身份验证连接到 Cassandra 5.1
【发布时间】:2021-03-26 18:07:36
【问题描述】:

我正在尝试通过 Java 客户端的身份验证连接到 DSE 5.1 集群。 我用过的Cassandra驱动是

<dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-core</artifactId>
        <version>3.1.4</version>
    </dependency>

添加了一个尝试连接到特定 KeySpace 的简单测试:

@Test
public void testConnection() {
    String user = "****";
    String pswd = "*******";
    String host = "********"
    Cluster cluster = Cluster.builder().addContactPoints(host)
            .withPort(9042)
            .withCredentials(user.trim(), pswd.trim())
            .build();
    Session session = cluster.connect(QueryBuilder.quote("TestKS"));
    Assert.assertNotNull(session);
}

我最终得到com.datastax.driver.core.exceptions.AuthenticationException

从终端,我可以使用相同的凭据连接到此节点,但从我的 Java 代码中,我无法通过此异常。

堆栈跟踪

com.datastax.driver.core.exceptions.AuthenticationException: Authentication error on host /<host>:9042: Failed to login. Please re-try.
    at com.datastax.driver.core.Connection$8.apply(Connection.java:390)
    at com.datastax.driver.core.Connection$8.apply(Connection.java:359)
    at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:211)

请告知我缺少的内容。

【问题讨论】:

    标签: java cassandra dse


    【解决方案1】:

    您没有提供完整的堆栈跟踪,因此很难确切知道您的代码失败的原因。

    无论如何,Java 驱动程序 3.1.4 已有 4 年历史了,如果您刚开始使用新应用程序,我们建议您使用与 DSE 5.1 兼容的最新 Java 驱动程序 4(顺便说一下,有不是 Cassandra 5.1)。

    您可以在驱动程序中以编程方式配置身份验证,但推荐的方式是在配置文件中指定凭据。例如:

    datastax-java-driver {
      advanced.auth-provider {
        class = PlainTextAuthProvider
        username = user
        password = pass
      }
    }
    

    有关详细信息,请参阅驱动程序文档中的Authentication 页面。

    如果您不熟悉为 Cassandra 开发应用程序,我们在 Astra 上提供了示例应用程序,您可以在其中查看完整的源代码,以便快速开始。干杯!

    【讨论】:

      猜你喜欢
      • 2018-04-28
      • 2021-08-06
      • 1970-01-01
      • 2015-01-28
      • 2020-09-30
      • 1970-01-01
      • 2015-12-05
      • 2013-09-07
      相关资源
      最近更新 更多