You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus Panache MongoDB从AWS SSM获取认证信息的凭证提供者配置问题

从AWS SSM获取MongoDB认证信息解决连接空指针问题

问题背景

原本通过application.resources配置MongoDB的用户名和密码实现数据库读写,生产环境需要从AWS SSM存储中获取认证值。使用SsmClient能读取到值,但无法在代码中设置对应属性,且找到的凭证提供者示例多针对关系型数据库。

尝试与错误

编写了凭证获取方法,能正确输出从SSM获取的用户名和密码,但连接数据库时抛出空指针异常:

@Override
public Map<String, String> getCredentials(String credentialsProviderName) {
  Map<String, String> properties = new HashMap<>();
  Map<String, String> secretParams = ssmProvider.getParameters(List.of(dbUserName, dbPassword));
  properties.put("PASSWORD_PROPERTY_NAME", secretParams.get(dbPassword));
  properties.put("USER_PROPERTY_NAME", secretParams.get(dbUserName));
  log.infof("Password %s", properties.get("PASSWORD_PROPERTY_NAME"));
  log.infof("Username %s", properties.get("USER_PROPERTY_NAME"));
  return properties;
}

错误信息:

Error creating synthetic bean [875fc6d3e776003a77cb64e6876f962a3525aded]: java.lang.NullPointerException: Cannot invoke "String.toCharArray()" because "password" is null

解决方法

问题出在代码中的"PASSWORD_PROPERTY_NAME"和"USER_PROPERTY_NAME"——这两个应该是常量标识符而非字符串字面量,去掉引号后即可正常注入认证信息,解决空指针问题。


内容的提问来源于stack exchange,提问作者robert080262

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:17:19