相关疑难解决方法(0)

使用IAM身份验证和Spring JDBC(DataSource和JdbcTemplace)访问AWS RDS

我不知道如何实现这一点。任何帮助和/或指针将不胜感激。

目前,我的Java / Spring应用程序后端已部署在EC2上,并使用常规的Spring JDBC设置成功访问了RDS上的MySQL。也就是说,存储数据库中的信息application.properties和配置DataSource,并JdbcTemplate@Configuration类。一切正常。

现在,我需要安全地访问RDS上的MySQL 。RDS实例已启用IAM身份验证。我还成功创建了IAM角色并应用了内联策略。然后,按照此链接上的AWS RDS文档和Java示例,我能够使用身份验证令牌和我创建的用户(而不是常规的db用户名和密码)从独立的Java类成功访问数据库。这个独立的Java类直接处理“ Connection ”对象。

我遇到的困难是如何将其转换为Spring JDBC配置。也就是说,在我的@Configuration类中为此设置DataSourceJdbcTemplatebean。

实施此方法的正确/正确方法是什么?

-----编辑-开始-----

我正在尝试将其实现为可用于多个项目的库。也就是说,它将用作JAR,并在项目的POM文件中声明为依赖项。该库将包括可配置的AWS服务,例如使用常规DB用户名和密码的RDS访问,使用IAM身份验证的RDS访问,用于数据加密的KMS(CMK /数据密钥)等。

想法是根据项目在任何Web /应用服务器上使用此库。

希望这可以澄清我的需求。

-----编辑-结束-----

DataSource内部具有getConnection(),因此我基本上可以创建自己的DataSource实现来实现所需的功能。但这是一个好方法吗?

就像是:

public class MyDataSource implements DataSource {
    @Override
    public Connection getConnection() throws SQLException {
        Connection conn = null;
        // get a connection using IAM Authentication Token for …
Run Code Online (Sandbox Code Playgroud)

java architecture spring-jdbc amazon-rds aws-iam

6
推荐指数
2
解决办法
2447
查看次数

使用Spring + dbcp刷新DataSource

我正在使用Spring和DBCP,并且当操作环境上的某些配置发生更改时需要刷新我的数据源,而无需重新启动所有应用程序.

如果我在不使用DBCP的情况下执行此操作,则强制此刷新关闭当前正在打开的数据源并启动DataSource的新实例.

使用DBCP + Spring,我不能这样做.

有人知道是否有可能吗?

java spring datasource apache-commons-dbcp

2
推荐指数
1
解决办法
5134
查看次数