如何解决AWS Secrets Manager:驱动程序不支持提供的 URL:jdbc-secretsmanager:postgresql
我正在尝试使用 aws-secretsmanager-jdbc 连接无服务器 prostgress 我在 application.properties 中有以下配置
#secrets name
quarkus.datasource.username = rds-db-credentials/postgres-serverless/rw/dbuser
quarkus.datasource.jdbc.url = jdbc-secretsmanager:postgresql://${db.host}:${db.port}/dbname
quarkus.datasource.jdbc.driver=com.amazonaws.secretsmanager.sql.AWSSecretsManagerPostgresqlDriver
我得到的错误是
Could not obtain connection to query Metadata: java.sql.sqlException: Driver does not support the provided URL: jdbc-secretsmanager:postgresql://dburl
我正在尝试通过 aws-secretsmanager-jdbc 进行连接,我可以使用获取机密和通过 jdbc 使用常规连接进行连接
解决方法
为了解决这个问题,我创建了一个读取机密的 bean 和一个实现 CredentialsProvider
的 bean,这里的代码如下
@ApplicationScoped
@Named("app-credentials-provider")
public class AppCredentialsProvider implements CredentialsProvider {
@Inject
DBSecretPOJO dbSecretPOJO;
@Override
public Map<String,String> getCredentials(String credentialsProviderName) {
Map<String,String> properties = new HashMap<>();
properties.put(USER_PROPERTY_NAME,dbSecretPOJO.getUsername());
properties.put(PASSWORD_PROPERTY_NAME,dbSecretPOJO.getPassword());
return properties;
}
}
配置
quarkus.datasource.credentials-provider=custom
quarkus.datasource.credentials-provider-name=app-credentials-provider
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。