Spring Data Cassandra集成Spring Vault动态轮换凭证连接问题咨询
Spring Data Cassandra(SDC) 动态凭证轮换的实现问题
我正在开发一个基于Spring Data Cassandra(SDC) 的项目,目前在做与Spring Vault的集成工作,目标是实现数据库动态凭证的生成与自动轮换。现在已经能从Vault获取到新的数据库凭证,但发现SDC的API中没有提供更新数据库连接凭证的方法(暂不清楚其他Spring Data项目是否具备该功能)。
我们研究了SDC对Datastax Java Driver的使用逻辑:CqlSession对象在项目启动时创建,且它包含的凭证信息无法修改。
针对这个问题,我们自己梳理了一套临时解决方案,步骤如下:
- 更新
CassandraProperties中的用户名和密码为新凭证 - 使用新凭证创建一个新的
CqlSession对象 - 更新
CqlTemplate和ReactiveCqlTemplate的会话工厂,让后续所有数据库操作都使用新会话 - 关闭旧的
CqlSession,不再接受新请求,同时允许正在执行的请求正常完成
我认为数据库凭证更新是很常见的场景,这个功能应该由SDC官方提供,而非让开发者自行实现。现在有两个具体问题想请教:
- 未来的SDC版本有没有计划加入类似「更新凭证」的功能?还是说这个功能更适合归属于Datastax Java客户端的范畴?
- 有没有其他开发者遇到过同样的问题?
内容的提问来源于stack exchange,提问作者alb3rtobr
相关产品推荐
相关产品推荐

