lasdf1234 opened a new pull request, #11457:
URL: https://github.com/apache/gravitino/pull/11457
### What changes were proposed in this pull request?
Add HTTP Basic authentication support to the Spark, Flink, and Trino
connectors so they can
authenticate against the Gravitino built-in IDP:
- **catalog-common**: add `BASIC_AUTH_TYPE`, `isBasic()`, and shared
`basic.username` /
`basic.password` property keys in `AuthProperties`.
- **Spark**: `GravitinoSparkConfig` properties and `basic` branch in
`GravitinoDriverPlugin.createGravitinoClient()`.
- **Flink**: `basic` auth in `GravitinoCatalogManager` and
`GravitinoCatalogStoreFactoryOptions`.
- **Trino**: `basic` auth in `GravitinoAuthProvider`.
- **Docs**: update Spark/Flink/Trino connector authentication documentation.
- **Tests**: unit tests for Flink/Trino; integration tests
`SparkBasicAuthIT`,
`FlinkBasicAuthIT`, and `TrinoBasicAuthIT`.
### Why are the changes needed?
The built-in IDP requires HTTP Basic Authentication, but the
Spark/Flink/Trino connectors only
supported `simple`, `oauth2`, and `kerberos`. Users could not connect
through these connectors
with built-in IDP credentials even though the Java client already supports
`withBasicAuth()`.
Fix: #11443
### Does this PR introduce _any_ user-facing change?
Yes. New optional connector configuration for Basic auth:
| Connector | Properties |
|-----------|------------|
| Spark | `spark.sql.gravitino.authType=basic`,
`spark.sql.gravitino.basic.username`, `spark.sql.gravitino.basic.password` |
| Flink | `table.catalog-store.gravitino.gravitino.client.auth.type=basic`,
`...basic.username`, `...basic.password` |
| Trino | `gravitino.client.authType=basic`,
`gravitino.client.basic.username`, `gravitino.client.basic.password` |
### How was this patch tested?
- `./gradlew :flink-connector:flink-common:test --tests
"org.apache.gravitino.flink.connector.store.TestGravitinoFlinkConfig" -PskipITs`
- `./gradlew :trino-connector:trino-connector:test --tests
"org.apache.gravitino.trino.connector.security.TestGravitinoAuthProvider"
-PskipITs`
- Integration tests (require Docker): `SparkBasicAuthIT`,
`FlinkBasicAuthIT`, `TrinoBasicAuthIT`
Made with [Cursor](https://cursor.com)
--
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]