RussellSpitzer commented on code in PR #395:
URL: https://github.com/apache/polaris/pull/395#discussion_r1813758406
##########
polaris-service/src/test/java/org/apache/polaris/service/catalog/PolarisRestCatalogIntegrationTest.java:
##########
@@ -747,6 +789,107 @@ public void
testCreateTableWithOverriddenBaseLocationMustResideInNsDirectory(
.isInstanceOf(ForbiddenException.class);
}
+ /**
+ * Create an EXTERNAL catalog. The test configuration, by default, disables
access delegation for
+ * EXTERNAL catalogs, so register a table and try to load it with the REST
client configured to
+ * try to fetch vended credentials. Expect a ForbiddenException.
+ */
+ @CatalogConfig(Catalog.TypeEnum.EXTERNAL)
+ @RestCatalogConfig({"header.X-Iceberg-Access-Delegation",
"vended-credentials"})
+ @Test
+ public void
testLoadTableWithAccessDelegationForExternalCatalogWithConfigDisabled() {
+ Namespace ns1 = Namespace.of("ns1");
+ restCatalog.createNamespace(ns1);
+ TableMetadata tableMetadata =
+ TableMetadata.newTableMetadata(
+ new Schema(List.of(Types.NestedField.of(1, false, "col1", new
Types.StringType()))),
+ PartitionSpec.unpartitioned(),
+ "file:///tmp/ns1/my_table",
+ Map.of());
+ try (ResolvingFileIO resolvingFileIO = new ResolvingFileIO()) {
+ resolvingFileIO.initialize(Map.of());
+ resolvingFileIO.setConf(new Configuration());
+ String fileLocation =
"file:///tmp/ns1/my_table/metadata/v1.metadata.json";
+ TableMetadataParser.write(tableMetadata,
resolvingFileIO.newOutputFile(fileLocation));
+ restCatalog.registerTable(TableIdentifier.of(ns1, "my_table"),
fileLocation);
+ try {
+ try {
+ restCatalog.loadTable(TableIdentifier.of(ns1, "my_table"));
+ Assertions.fail(
+ "Expected exception to be thrown when loading table from
external catalog with access delegation disabled");
+ } catch (ForbiddenException e) {
Review Comment:
Are we sure this is going to be related to our lack of credentials? Just
wondering if we should also be checking the message or contents
--
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]