Pierre Villard created NIFI-15216:
-------------------------------------
Summary: Add support for AWS RDS IAM authentication in DBCP
Connection Pool
Key: NIFI-15216
URL: https://issues.apache.org/jira/browse/NIFI-15216
Project: Apache NiFi
Issue Type: Improvement
Components: Extensions
Reporter: Pierre Villard
Assignee: Pierre Villard
The goal is to add support for AWS RDS IAM Authentication when connecting over
JDBC to an AWS RDS instance.
[https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.html]
The approach is the following:
- nifi-standard-services/nifi-dbcp-service-api
-- Added org.apache.nifi.dbcp.api.DatabasePasswordProvider
-- Added org.apache.nifi.dbcp.api.DatabasePasswordRequestContext
- nifi-extension-utils/nifi-dbcp-base
-- ProviderAwareBasicDataSource wraps commons‑dbcp BasicDataSource and pulls
passwords from an injected DatabasePasswordProvider
-- AbstractDBCPConnectionPool expose the new “Database Password Provider”
property and forward the request context
- nifi-aws-bundle/nifi-aws-processors
-- org.apache.nifi.processors.aws.rds.AwsRdsIamDatabasePasswordProvider
implements the API, uses the existing AWS credentials service, and generates
IAM auth tokens per connection
-- pom.xml now depends on nifi-dbcp-service-api (scope provided) so the
controller service compiles against the shared API
- nifi-aws-bundle/nifi-aws-nar
-- Still depends only on nifi-aws-service-api-nar (which already drags in
nifi-standard-shared-nar → nifi-standard-services-api-nar)
Class-loader / NAR chain
nifi-standard-services-api-nar
↳ contains nifi-dbcp-service-api.jar (DatabasePasswordProvider, etc.)
nifi-standard-shared-nar
↳ depends on nifi-standard-services-api-nar
nifi-aws-service-api-nar
↳ depends on nifi-standard-shared-nar (so it inherits the entire
controller-service API set)
nifi-aws-nar
↳ depends on nifi-aws-service-api-nar
↳ transitively inherits nifi-standard-shared-nar →
nifi-standard-services-api-nar
--
This message was sent by Atlassian Jira
(v8.20.10#820010)