使用Spring vault的动态、旋转凭证连接到Cassandra

hpcdzsge  于 10个月前  发布在  Cassandra
关注(0)|答案(1)|浏览(83)

我正在做一个使用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客户机的特性?
  • 以前有人遇到过这个问题吗?
imzjd6km

imzjd6km1#

如果您使用application.conf配置身份验证,则可以在运行时更改文件中的凭据,因为Java驱动程序支持热重载。重新加载配置时,新凭据将用于新连接。
详情请参见Cassandra Java driver Configuration page
或者,尝试以编程方式设置凭据。例如,如果将会话对象定义为:

CqlSession session = ... ;

字符串
您可以使用以下命令直接设置凭据:

session = CqlSession.builder().withAuthCredentials(username, password).build();


有关详细信息,请参阅Cassandra Java driver Authentication page。干杯!

相关问题