From 43e96fe397840b06eae23ca2045f55fb94e4128a Mon Sep 17 00:00:00 2001 From: Eric Maynard Date: Tue, 4 Mar 2025 14:43:57 -0800 Subject: [PATCH 1/3] add identifier --- .../apache/polaris/service/auth/DefaultActiveRolesProvider.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/service/common/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java b/service/common/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java index 869a27b52c..c679cddc2a 100644 --- a/service/common/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java +++ b/service/common/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java @@ -18,6 +18,7 @@ */ package org.apache.polaris.service.auth; +import io.smallrye.common.annotation.Identifier; import jakarta.enterprise.context.RequestScoped; import jakarta.inject.Inject; import java.util.List; @@ -45,6 +46,7 @@ * available roles are active for this request. */ @RequestScoped +@Identifier("default") public class DefaultActiveRolesProvider implements ActiveRolesProvider { private static final Logger LOGGER = LoggerFactory.getLogger(DefaultActiveRolesProvider.class); From 97d6201d0b804c5bfdbfb99f45e4f5e75173edcb Mon Sep 17 00:00:00 2001 From: Eric Maynard Date: Tue, 4 Mar 2025 18:57:53 -0800 Subject: [PATCH 2/3] add producer --- .../polaris/service/quarkus/config/QuarkusProducers.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java b/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java index cbe1cc2627..b3a9a51743 100644 --- a/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java +++ b/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java @@ -47,6 +47,7 @@ import org.apache.polaris.core.persistence.cache.EntityCache; import org.apache.polaris.core.persistence.transactional.TransactionalPersistence; import org.apache.polaris.core.storage.cache.StorageCredentialCache; +import org.apache.polaris.service.auth.ActiveRolesProvider; import org.apache.polaris.service.auth.Authenticator; import org.apache.polaris.service.auth.TokenBrokerFactory; import org.apache.polaris.service.catalog.api.IcebergRestOAuth2ApiService; @@ -64,6 +65,7 @@ import org.apache.polaris.service.ratelimiter.RateLimiter; import org.apache.polaris.service.ratelimiter.TokenBucketFactory; import org.apache.polaris.service.task.TaskHandlerConfiguration; +import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.context.ManagedExecutor; import org.eclipse.microprofile.context.ThreadContext; @@ -239,6 +241,13 @@ public PolarisEntityManager polarisEntityManager( return new PolarisEntityManager(polarisMetaStoreManager, credentialCache, entityCache); } + @Produces + public ActiveRolesProvider activeRolesProvider( + @ConfigProperty(name = "quarkus.active-roles-provider.type") String persistenceType, + @Any Instance activeRolesProviders) { + return activeRolesProviders.select(Identifier.Literal.of(persistenceType)).get(); + } + public void closeTaskExecutor(@Disposes @Identifier("task-executor") ManagedExecutor executor) { executor.close(); } From 9914746b3ee9f22df5f9b6317ed10246934d917e Mon Sep 17 00:00:00 2001 From: Eric Maynard Date: Wed, 5 Mar 2025 09:52:10 -0800 Subject: [PATCH 3/3] add to config --- quarkus/defaults/src/main/resources/application.properties | 2 ++ .../apache/polaris/service/quarkus/config/QuarkusProducers.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/quarkus/defaults/src/main/resources/application.properties b/quarkus/defaults/src/main/resources/application.properties index d3a2057372..a523b15f93 100644 --- a/quarkus/defaults/src/main/resources/application.properties +++ b/quarkus/defaults/src/main/resources/application.properties @@ -116,6 +116,8 @@ polaris.rate-limiter.token-bucket.type=default polaris.rate-limiter.token-bucket.requests-per-second=9999 polaris.rate-limiter.token-bucket.window=PT10S +polaris.active-roles-provider.type=default + polaris.authentication.authenticator.type=default polaris.authentication.token-service.type=default polaris.authentication.token-broker.type=rsa-key-pair diff --git a/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java b/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java index b3a9a51743..70e262c432 100644 --- a/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java +++ b/quarkus/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java @@ -243,7 +243,7 @@ public PolarisEntityManager polarisEntityManager( @Produces public ActiveRolesProvider activeRolesProvider( - @ConfigProperty(name = "quarkus.active-roles-provider.type") String persistenceType, + @ConfigProperty(name = "polaris.active-roles-provider.type") String persistenceType, @Any Instance activeRolesProviders) { return activeRolesProviders.select(Identifier.Literal.of(persistenceType)).get(); }