0

我正在使用 DataStax Java 驱动程序版本 3.3.0 运行 Java 应用程序,并且我试图在运行时更改 Cassandra 用户和密码。根据这个问题,通过调用setUsersetPassword在这个对象中它应该重用它以供将来调用数据库,所以我在我的代码中做了类似的事情

PlainTextAuthProvider authProvider = (PlainTextAuthProvider) cluster.getConfiguration().getProtocolOptions().getAuthProvider();

authProvider.setUsername(user);
authProvider.setPassword(pwd);

但即使在此更改之后,我发现它仍然使用我在启动时设置的用户/密码。

该文档表明在 > 4.x 版本中,您可以在运行时强制重新加载配置。

所以我的问题是,有没有办法强制所有对 Cassandra 的新调用开始使用PlainTextAuthProvider版本 3.x 中提供的新用户和通行证?

额外:我这样做是为了尝试在它们过期时轮换 Vault 密码并相应地更新驱动程序。类似于这篇文章中描述的由 Spring Boot 但在 Cassandra 上访问的关系数据库

4

1 回答 1

0

在https://community.datastax.com/questions/11846/上也有人问过这个问题,我在这里重新发布我的回复:

我不熟悉此 API,但我认为凭据仅用于设置凭据后启动的新连接。我怀疑它不适用于继续使用旧凭据的现有连接。

我将与 DataStax 的驱动程序开发人员联系,要么让他们直接回复,要么我会更新我的答案。干杯!

于 2021-07-12T01:55:13.620 回答