This is an automated email from the ASF dual-hosted git repository.

dimas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git


The following commit(s) were added to refs/heads/main by this push:
     new 65c28d12 Inject auth tokens into Spark sessions (#832)
65c28d12 is described below

commit 65c28d1229774bb3b1e7c8934eb13ccc00f6aeb7
Author: Dmitri Bourlatchkov <[email protected]>
AuthorDate: Tue Jan 21 09:53:10 2025 -0500

    Inject auth tokens into Spark sessions (#832)
    
    Obtain access tokens from `PolarisAccessManager` (#789)
    before starting Spark sessions as opposed to passing
    client ID/secret to Spark and relying on the Iceberg
    REST Client to obtain access tokens.
    
    This makes all "blackbox" integration tests obtain access
    tokens the same way.
---
 .../org/apache/polaris/service/it/env/IcebergHelper.java | 10 +++-------
 .../it/test/PolarisApplicationIntegrationTest.java       | 16 +++++++---------
 .../it/test/PolarisRestCatalogIntegrationTest.java       |  6 +++++-
 .../it/test/PolarisRestCatalogViewIntegrationBase.java   |  3 ++-
 4 files changed, 17 insertions(+), 18 deletions(-)

diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/env/IcebergHelper.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/env/IcebergHelper.java
index 020a12b2..f894489b 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/env/IcebergHelper.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/env/IcebergHelper.java
@@ -19,7 +19,6 @@
 package org.apache.polaris.service.it.env;
 
 import static 
org.apache.polaris.service.it.env.PolarisApiEndpoints.REALM_HEADER;
-import static 
org.apache.polaris.service.it.test.PolarisApplicationIntegrationTest.PRINCIPAL_ROLE_ALL;
 
 import com.google.common.collect.ImmutableMap;
 import java.util.Map;
@@ -33,10 +32,12 @@ public final class IcebergHelper {
   private IcebergHelper() {}
 
   public static RESTCatalog restCatalog(
+      PolarisClient client,
       PolarisApiEndpoints endpoints,
       PrincipalWithCredentials credentials,
       String catalog,
       Map<String, String> extraProperties) {
+    String authToken = client.obtainToken(credentials);
     SessionCatalog.SessionContext context = 
SessionCatalog.SessionContext.createEmpty();
     RESTCatalog restCatalog =
         new RESTCatalog(
@@ -50,12 +51,7 @@ public final class IcebergHelper {
         ImmutableMap.<String, String>builder()
             .put(
                 org.apache.iceberg.CatalogProperties.URI, 
endpoints.catalogApiEndpoint().toString())
-            .put(
-                OAuth2Properties.CREDENTIAL,
-                credentials.getCredentials().getClientId()
-                    + ":"
-                    + credentials.getCredentials().getClientSecret())
-            .put(OAuth2Properties.SCOPE, PRINCIPAL_ROLE_ALL)
+            .put(OAuth2Properties.TOKEN, authToken)
             .put(
                 org.apache.iceberg.CatalogProperties.FILE_IO_IMPL,
                 "org.apache.iceberg.inmemory.InMemoryFileIO")
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
index 26fbdc32..4275ba0c 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
@@ -106,6 +106,7 @@ public class PolarisApplicationIntegrationTest {
   private static PolarisClient client;
   private static ClientCredentials clientCredentials;
   private static ClientPrincipal admin;
+  private static String authToken;
 
   private String principalRoleName;
   private String internalCatalogName;
@@ -118,6 +119,7 @@ public class PolarisApplicationIntegrationTest {
     realm = endpoints.realm();
     admin = adminCredentials;
     clientCredentials = adminCredentials.credentials();
+    authToken = client.obtainToken(clientCredentials);
 
     testDir = Path.of("build/test_data/iceberg/" + realm);
     FileUtils.deleteQuietly(testDir.toFile());
@@ -158,7 +160,7 @@ public class PolarisApplicationIntegrationTest {
   }
 
   @AfterEach
-  public void cleanUp() throws Exception {
+  public void cleanUp() {
     client.cleanUp(clientCredentials);
   }
 
@@ -235,10 +237,8 @@ public class PolarisApplicationIntegrationTest {
         Map.of(
             "uri",
             endpoints.catalogApiEndpoint().toString(),
-            OAuth2Properties.CREDENTIAL,
-            clientCredentials.clientId() + ":" + 
clientCredentials.clientSecret(),
-            OAuth2Properties.SCOPE,
-            PRINCIPAL_ROLE_ALL,
+            OAuth2Properties.TOKEN,
+            authToken,
             "warehouse",
             catalog,
             "header." + REALM_HEADER,
@@ -579,10 +579,8 @@ public class PolarisApplicationIntegrationTest {
                       Map.of(
                           "uri",
                           endpoints.catalogApiEndpoint().toString(),
-                          OAuth2Properties.CREDENTIAL,
-                          clientCredentials.clientId() + ":" + 
clientCredentials.clientSecret(),
-                          OAuth2Properties.SCOPE,
-                          PRINCIPAL_ROLE_ALL,
+                          OAuth2Properties.TOKEN,
+                          authToken,
                           "warehouse",
                           emptyEnvironmentVariable,
                           "header." + REALM_HEADER,
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
index 64f3426c..87b63acc 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
@@ -222,7 +222,11 @@ public class PolarisRestCatalogIntegrationTest extends 
CatalogTests<RESTCatalog>
 
     restCatalog =
         IcebergHelper.restCatalog(
-            endpoints, principalCredentials, currentCatalogName, 
extraPropertiesBuilder.build());
+            client,
+            endpoints,
+            principalCredentials,
+            currentCatalogName,
+            extraPropertiesBuilder.build());
   }
 
   @AfterEach
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
index 4f78413e..34074bba 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
@@ -108,7 +108,8 @@ public abstract class PolarisRestCatalogViewIntegrationBase 
extends ViewCatalogT
             .build();
     managementApi.createCatalog(principalRoleName, catalog);
 
-    restCatalog = IcebergHelper.restCatalog(endpoints, principalCredentials, 
catalogName, Map.of());
+    restCatalog =
+        IcebergHelper.restCatalog(client, endpoints, principalCredentials, 
catalogName, Map.of());
   }
 
   @AfterEach

Reply via email to