我正在做一个使用Spring Data Cassandra的项目(为了简单起见,从现在开始称为“SDC”),我们一直致力于与Spring Vault的集成,这样我们就可以生成动态凭证并旋转它们。我们正在从Vault接收新的凭据,但当时我们希望在SDC API中找到一种更新凭据以连接到数据库的方法,但我们发现这是不可能的(另一方面,我们不知道其他Spring Data项目是否提供该功能)。
我们研究了SDC如何使用Datastax Java驱动程序。CqlSession
对象是在启动时创建的,它包含凭据,但不能修改它们。因此,我们提出了由以下步骤组成的解决方案。
1.使用新用户和密码更新CassandraProperties
1.创建一个使用新凭据的新CqlSession对象。
1.用新的会话更新CqlTemplate和ReactiveCqlTemplate会话工厂,这样对数据库的新操作将使用新的凭证
1.关闭旧的会话,这样就不会接受新的请求,并且允许正在执行的请求完成。
我认为这个功能似乎可以由SDC提供,而不是由用户实现。更新连接凭据是一个非常常见的操作。
所以具体问题:
- 是否计划在SDC的未来版本中包含类似的功能(“更新凭据”)?或者这是一个更适合datastaxjava客户机的特性?
- 以前有人遇到过这个问题吗?
1条答案
按热度按时间imzjd6km1#
如果您使用
application.conf
配置身份验证,则可以在运行时更改文件中的凭据,因为Java驱动程序支持热重载。重新加载配置时,新凭据将用于新连接。详情请参见Cassandra Java driver Configuration page。
或者,尝试以编程方式设置凭据。例如,如果将会话对象定义为:
字符串
您可以使用以下命令直接设置凭据:
型
有关详细信息,请参阅Cassandra Java driver Authentication page。干杯!