yuqi1129 opened a new pull request, #11853:
URL: https://github.com/apache/gravitino/pull/11853

   ### What changes were proposed in this pull request?
   
   Apply vended credentials to server-side Iceberg catalog configuration for 
both Gravitino Iceberg catalog operations and Iceberg REST dynamic catalog 
configuration.
   
   This PR:
   - Applies credentials generated by catalog credential providers to Iceberg 
catalog properties.
   - Makes Iceberg REST dynamic catalog configuration inject all supported 
vended credentials, not only JDBC credentials.
   - Handles null `supportsCredentials()` defensively when collecting catalog 
credentials.
   - Adds tests for:
     - Server-side Iceberg catalog credential provider injection.
     - Iceberg REST dynamic provider injection of `AwsIrsaCredential`.
     - `FileWebIdentityTokenSource` with Fileset and GVFS credential paths 
using a local fake STS server.
   
   ### Why are the changes needed?
   
   Server-side Iceberg S3FileIO did not receive credentials generated from web 
identity flows such as `FileWebIdentityTokenSource`. As a result, Azure/OIDC 
web identity based flows could vend credentials for some paths, but Iceberg 
REST server-side S3 access was not configured with the generated AWS session 
credentials.
   
   Fix: #11850
   
   ### Does this PR introduce _any_ user-facing change?
   
   No new user-facing API or property key is introduced.
   
   Existing credential vending configuration, including `aws-irsa` and 
`s3-web-identity-token-source=file`, now also applies to server-side Iceberg 
FileIO configuration.
   
   ### How was this patch tested?
   
   - `./gradlew :common:test --tests 
org.apache.gravitino.credential.TestCredentialPropertiesUtils`
   - `./gradlew :bundles:aws:test --tests 
org.apache.gravitino.s3.credential.TestAwsIrsaCredentialGenerator`
   - `./gradlew :iceberg:iceberg-rest-server:test --tests 
org.apache.gravitino.iceberg.service.provider.TestDynamicIcebergConfigProvider`
   - `./gradlew :catalogs:catalog-lakehouse-iceberg:test --tests 
org.apache.gravitino.catalog.lakehouse.iceberg.TestIcebergCatalogOperations`
   - `./gradlew :clients:filesystem-hadoop3:test --tests 
org.apache.gravitino.filesystem.hadoop.integration.test.FilesetS3WebIdentityCredentialIT`
   - `git diff --check`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to