Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.auth.PolarisAuthorizerImpl;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.config.PolarisConfigurationStore;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.context.RealmContext;
Expand All @@ -71,7 +70,6 @@
import org.apache.polaris.core.entity.PrincipalEntity;
import org.apache.polaris.core.entity.PrincipalRoleEntity;
import org.apache.polaris.core.identity.provider.ServiceIdentityProvider;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.dao.entity.BaseResult;
import org.apache.polaris.core.persistence.dao.entity.PrivilegeResult;
Expand All @@ -80,7 +78,6 @@
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.core.policy.PredefinedPolicyTypes;
import org.apache.polaris.core.secrets.UserSecretsManager;
import org.apache.polaris.core.secrets.UserSecretsManagerFactory;
import org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.Profiles;
Expand All @@ -91,7 +88,6 @@
import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.catalog.policy.PolicyCatalog;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.context.catalog.CallContextCatalogFactory;
import org.apache.polaris.service.context.catalog.PolarisCallContextCatalogFactory;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
import org.apache.polaris.service.storage.PolarisStorageIntegrationProviderImpl;
Expand Down Expand Up @@ -190,35 +186,30 @@ public Map<String, String> getConfigOverrides() {
required(4, "data", Types.StringType.get()));
protected final ReservedProperties reservedProperties = ReservedProperties.NONE;

@Inject protected MetaStoreManagerFactory managerFactory;
@Inject protected ResolutionManifestFactory resolutionManifestFactory;
@Inject protected CallContextCatalogFactory callContextCatalogFactory;
@Inject protected UserSecretsManagerFactory userSecretsManagerFactory;
@Inject protected ServiceIdentityProvider serviceIdentityProvider;
@Inject protected PolarisCredentialManager credentialManager;
@Inject protected PolarisDiagnostics diagServices;
@Inject protected FileIOFactory fileIOFactory;
@Inject protected PolarisEventListener polarisEventListener;
@Inject protected CatalogHandlerUtils catalogHandlerUtils;
@Inject protected PolarisConfigurationStore configurationStore;
@Inject protected StorageCredentialCache storageCredentialCache;
@Inject protected ResolverFactory resolverFactory;
@Inject protected StorageAccessConfigProvider storageAccessConfigProvider;
@Inject protected PolarisMetaStoreManager metaStoreManager;
@Inject protected UserSecretsManager userSecretsManager;
@Inject protected CallContext callContext;
@Inject protected RealmConfig realmConfig;

protected IcebergCatalog baseCatalog;
protected PolarisGenericTableCatalog genericTableCatalog;
protected PolicyCatalog policyCatalog;
protected PolarisAdminService adminService;
protected PolarisMetaStoreManager metaStoreManager;
protected UserSecretsManager userSecretsManager;
protected PolarisBaseEntity catalogEntity;
protected PolarisBaseEntity federatedCatalogEntity;
protected PrincipalEntity principalEntity;
protected CallContext callContext;
protected RealmConfig realmConfig;
protected PolarisPrincipal authenticatedRoot;
protected PolarisAuthorizer polarisAuthorizer;

protected PolarisCallContext polarisContext;

@BeforeAll
Expand All @@ -238,19 +229,12 @@ public void before(TestInfo testInfo) {

RealmContext realmContext = testInfo::getDisplayName;
QuarkusMock.installMockForType(realmContext, RealmContext.class);
polarisContext = callContext.getPolarisCallContext();

ContainerRequestContext containerRequestContext = Mockito.mock(ContainerRequestContext.class);
Mockito.when(containerRequestContext.getProperty(Mockito.anyString()))
.thenReturn("request-id-1");
QuarkusMock.installMockForType(containerRequestContext, ContainerRequestContext.class);
metaStoreManager = managerFactory.getOrCreateMetaStoreManager(realmContext);
userSecretsManager = userSecretsManagerFactory.getOrCreateUserSecretsManager(realmContext);

polarisContext =
new PolarisCallContext(
realmContext, managerFactory.getOrCreateSession(realmContext), configurationStore);

callContext = polarisContext;
realmConfig = polarisContext.getRealmConfig();

polarisAuthorizer = new PolarisAuthorizerImpl(realmConfig);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class JWTSymmetricKeyGeneratorTest {
/** Sanity test to verify that we can generate a token */
@Test
public void testJWTSymmetricKeyGenerator() {
PolarisCallContext polarisCallContext = new PolarisCallContext(null, null, null);
PolarisCallContext polarisCallContext = Mockito.mock(PolarisCallContext.class);
PolarisMetaStoreManager metastoreManager = Mockito.mock(PolarisMetaStoreManager.class);
long principalId = 123L;
String mainSecret = "test_secret";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,10 @@
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import io.quarkus.test.junit.QuarkusTest;
import jakarta.inject.Inject;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.util.Optional;
import org.apache.polaris.core.PolarisCallContext;
import org.apache.polaris.core.config.PolarisConfigurationStore;
import org.apache.polaris.core.entity.PolarisPrincipalSecrets;
import org.apache.polaris.core.entity.PrincipalEntity;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
Expand All @@ -39,11 +36,8 @@
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

@QuarkusTest
public class RSAKeyPairJWTBrokerTest {

@Inject protected PolarisConfigurationStore configurationStore;

@Test
public void testSuccessfulTokenGeneration() throws Exception {
var keyPair = PemUtils.generateKeyPair();
Expand All @@ -52,7 +46,7 @@ public void testSuccessfulTokenGeneration() throws Exception {
final String clientId = "test-client-id";
final String scope = "PRINCIPAL_ROLE:TEST";

PolarisCallContext polarisCallContext = new PolarisCallContext(null, null, configurationStore);
PolarisCallContext polarisCallContext = Mockito.mock(PolarisCallContext.class);
PolarisMetaStoreManager metastoreManager = Mockito.mock(PolarisMetaStoreManager.class);
String mainSecret = "client-secret";
PolarisPrincipalSecrets principalSecrets =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,23 +44,20 @@
import org.apache.polaris.core.auth.PolarisAuthorizerImpl;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.config.FeatureConfiguration;
import org.apache.polaris.core.config.PolarisConfigurationStore;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.CatalogEntity;
import org.apache.polaris.core.entity.PolarisEntity;
import org.apache.polaris.core.entity.PrincipalEntity;
import org.apache.polaris.core.entity.table.GenericTableEntity;
import org.apache.polaris.core.identity.provider.ServiceIdentityProvider;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.resolver.ResolutionManifestFactory;
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.core.secrets.UserSecretsManager;
import org.apache.polaris.core.secrets.UserSecretsManagerFactory;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
import org.apache.polaris.core.storage.PolarisStorageIntegrationProvider;
import org.apache.polaris.core.storage.StorageCredentialsVendor;
import org.apache.polaris.core.storage.aws.AwsCredentialsStorageIntegration;
import org.apache.polaris.core.storage.aws.AwsStorageConfigurationInfo;
import org.apache.polaris.core.storage.cache.StorageCredentialCache;
Expand Down Expand Up @@ -98,29 +95,27 @@ public abstract class AbstractPolarisGenericTableCatalogTest {
public static final String SECRET_ACCESS_KEY = "secret_access_key";
public static final String SESSION_TOKEN = "session_token";

@Inject MetaStoreManagerFactory metaStoreManagerFactory;
@Inject UserSecretsManagerFactory userSecretsManagerFactory;
@Inject ServiceIdentityProvider serviceIdentityProvider;
@Inject PolarisConfigurationStore configurationStore;
@Inject StorageCredentialCache storageCredentialCache;
@Inject PolarisStorageIntegrationProvider storageIntegrationProvider;
@Inject PolarisDiagnostics diagServices;
@Inject ResolverFactory resolverFactory;
@Inject ResolutionManifestFactory resolutionManifestFactory;
@Inject PolarisMetaStoreManager metaStoreManager;
@Inject UserSecretsManager userSecretsManager;
@Inject CallContext callContext;
@Inject RealmConfig realmConfig;
@Inject StorageAccessConfigProvider storageAccessConfigProvider;

private PolarisGenericTableCatalog genericTableCatalog;
private IcebergCatalog icebergCatalog;
private AwsStorageConfigInfo storageConfigModel;
private String realmName;
private PolarisMetaStoreManager metaStoreManager;
private UserSecretsManager userSecretsManager;
private PolarisCallContext polarisContext;
private RealmConfig realmConfig;
private PolarisAdminService adminService;
private FileIOFactory fileIOFactory;
private PolarisPrincipal authenticatedRoot;
private PolarisEntity catalogEntity;
private StorageAccessConfigProvider storageAccessConfigProvider;

protected static final Schema SCHEMA =
new Schema(
Expand Down Expand Up @@ -149,18 +144,7 @@ public void before(TestInfo testInfo) {

RealmContext realmContext = () -> realmName;
QuarkusMock.installMockForType(realmContext, RealmContext.class);
metaStoreManager = metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
userSecretsManager = userSecretsManagerFactory.getOrCreateUserSecretsManager(realmContext);
polarisContext =
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
StorageCredentialsVendor storageCredentialsVendor =
new StorageCredentialsVendor(metaStoreManager, polarisContext);
storageAccessConfigProvider =
new StorageAccessConfigProvider(storageCredentialCache, storageCredentialsVendor);
polarisContext = callContext.getPolarisCallContext();

PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@
import org.apache.polaris.core.auth.PolarisAuthorizerImpl;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.config.FeatureConfiguration;
import org.apache.polaris.core.config.PolarisConfigurationStore;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.CatalogEntity;
import org.apache.polaris.core.entity.NamespaceEntity;
Expand All @@ -121,16 +121,13 @@
import org.apache.polaris.core.persistence.pagination.Page;
import org.apache.polaris.core.persistence.pagination.PageToken;
import org.apache.polaris.core.persistence.resolver.ResolutionManifestFactory;
import org.apache.polaris.core.persistence.resolver.ResolutionManifestFactoryImpl;
import org.apache.polaris.core.persistence.resolver.Resolver;
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.core.secrets.UserSecretsManager;
import org.apache.polaris.core.secrets.UserSecretsManagerFactory;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
import org.apache.polaris.core.storage.PolarisStorageIntegrationProvider;
import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.apache.polaris.core.storage.StorageCredentialsVendor;
import org.apache.polaris.core.storage.aws.AwsCredentialsStorageIntegration;
import org.apache.polaris.core.storage.aws.AwsStorageConfigurationInfo;
import org.apache.polaris.core.storage.cache.StorageCredentialCache;
Expand Down Expand Up @@ -230,30 +227,29 @@ public Map<String, String> getConfigOverrides() {

@Inject Clock clock;
@Inject MetaStoreManagerFactory metaStoreManagerFactory;
@Inject PolarisConfigurationStore configurationStore;
@Inject StorageCredentialCache storageCredentialCache;
@Inject PolarisStorageIntegrationProvider storageIntegrationProvider;
@Inject UserSecretsManagerFactory userSecretsManagerFactory;
@Inject ServiceIdentityProvider serviceIdentityProvider;
@Inject PolarisDiagnostics diagServices;
@Inject PolarisEventListener polarisEventListener;
@Inject PolarisMetaStoreManager metaStoreManager;
@Inject UserSecretsManager userSecretsManager;
@Inject CallContext callContext;
@Inject RealmConfig realmConfig;
@Inject ResolutionManifestFactory resolutionManifestFactory;
@Inject StorageAccessConfigProvider storageAccessConfigProvider;

private IcebergCatalog catalog;
private String realmName;
private PolarisMetaStoreManager metaStoreManager;
private UserSecretsManager userSecretsManager;
private PolarisCallContext polarisContext;
private RealmConfig realmConfig;
private PolarisAdminService adminService;
private ResolverFactory resolverFactory;
private ResolutionManifestFactory resolutionManifestFactory;
private FileIOFactory fileIOFactory;
private InMemoryFileIO fileIO;
private PolarisEntity catalogEntity;
private PolarisPrincipal authenticatedRoot;
private TestPolarisEventListener testPolarisEventListener;
private ReservedProperties reservedProperties;
private StorageAccessConfigProvider storageAccessConfigProvider;

@BeforeAll
public static void setUpMocks() {
Expand Down Expand Up @@ -283,18 +279,7 @@ public void before(TestInfo testInfo) {

RealmContext realmContext = () -> realmName;
QuarkusMock.installMockForType(realmContext, RealmContext.class);
metaStoreManager = metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
userSecretsManager = userSecretsManagerFactory.getOrCreateUserSecretsManager(realmContext);
polarisContext =
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
StorageCredentialsVendor storageCredentialsVendor =
new StorageCredentialsVendor(metaStoreManager, polarisContext);
storageAccessConfigProvider =
new StorageAccessConfigProvider(storageCredentialCache, storageCredentialsVendor);
polarisContext = callContext.getPolarisCallContext();

EntityCache entityCache = createEntityCache(diagServices, realmConfig, metaStoreManager);
resolverFactory =
Expand All @@ -308,9 +293,6 @@ public void before(TestInfo testInfo) {
referenceCatalogName);
QuarkusMock.installMockForType(resolverFactory, ResolverFactory.class);

resolutionManifestFactory =
new ResolutionManifestFactoryImpl(diagServices, realmContext, resolverFactory);

PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
authenticatedRoot = PolarisPrincipal.of(rootPrincipal, Set.of());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,16 @@
import org.apache.polaris.core.auth.PolarisAuthorizerImpl;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.config.FeatureConfiguration;
import org.apache.polaris.core.config.PolarisConfigurationStore;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.CatalogEntity;
import org.apache.polaris.core.entity.PrincipalEntity;
import org.apache.polaris.core.identity.provider.ServiceIdentityProvider;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.resolver.ResolutionManifestFactory;
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.core.secrets.UserSecretsManager;
import org.apache.polaris.core.secrets.UserSecretsManagerFactory;
import org.apache.polaris.core.storage.StorageCredentialsVendor;
import org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
Expand Down Expand Up @@ -105,24 +102,22 @@ public Map<String, String> getConfigOverrides() {
CatalogProperties.VIEW_OVERRIDE_PREFIX + "key3", "catalog-override-key3",
CatalogProperties.VIEW_OVERRIDE_PREFIX + "key4", "catalog-override-key4");

@Inject MetaStoreManagerFactory metaStoreManagerFactory;
@Inject UserSecretsManagerFactory userSecretsManagerFactory;
@Inject ServiceIdentityProvider serviceIdentityProvider;
@Inject PolarisConfigurationStore configurationStore;
@Inject StorageCredentialCache storageCredentialCache;
@Inject PolarisDiagnostics diagServices;
@Inject PolarisEventListener polarisEventListener;
@Inject ResolverFactory resolverFactory;
@Inject ResolutionManifestFactory resolutionManifestFactory;
@Inject PolarisMetaStoreManager metaStoreManager;
@Inject UserSecretsManager userSecretsManager;
@Inject CallContext callContext;
@Inject RealmConfig realmConfig;
@Inject StorageAccessConfigProvider storageAccessConfigProvider;

private IcebergCatalog catalog;

private String realmName;
private PolarisMetaStoreManager metaStoreManager;
private UserSecretsManager userSecretsManager;
private PolarisCallContext polarisContext;
private RealmConfig realmConfig;
private StorageAccessConfigProvider storageAccessConfigProvider;

private TestPolarisEventListener testPolarisEventListener;

Expand Down Expand Up @@ -154,19 +149,7 @@ public void before(TestInfo testInfo) {
bootstrapRealm(realmName);
RealmContext realmContext = () -> realmName;
QuarkusMock.installMockForType(realmContext, RealmContext.class);

metaStoreManager = metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
userSecretsManager = userSecretsManagerFactory.getOrCreateUserSecretsManager(realmContext);
polarisContext =
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
StorageCredentialsVendor storageCredentialsVendor =
new StorageCredentialsVendor(metaStoreManager, polarisContext);
storageAccessConfigProvider =
new StorageAccessConfigProvider(storageCredentialCache, storageCredentialsVendor);
polarisContext = callContext.getPolarisCallContext();

PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
Expand Down
Loading