From 7ba491590498d25af7b6488de45e9d3a2024da4c Mon Sep 17 00:00:00 2001 From: Honah J Date: Tue, 13 May 2025 17:35:10 -0700 Subject: [PATCH 1/3] Enforce regex requirement for policy name --- .../policy/validator/PolicyValidators.java | 11 ++++ .../core/policy/PolicyValidatorsTest.java | 66 +++++++++++++++++++ .../quarkus/catalog/PolicyCatalogTest.java | 45 +++++++++++++ 3 files changed, 122 insertions(+) diff --git a/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java b/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java index 3be2387833..7bb25a74ac 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java @@ -19,6 +19,7 @@ package org.apache.polaris.core.policy.validator; import com.google.common.base.Preconditions; +import java.util.regex.Pattern; import org.apache.polaris.core.entity.PolarisEntity; import org.apache.polaris.core.policy.PolicyEntity; import org.apache.polaris.core.policy.PredefinedPolicyTypes; @@ -40,6 +41,10 @@ public class PolicyValidators { private static final Logger LOGGER = LoggerFactory.getLogger(PolicyValidators.class); + // A valid policy name should only consist of uppercase and lowercase letters (A-Z, a-z), digits + // (0-9), hyphens (-), underscores (_) + private static final Pattern POLICY_NAME_PATTERN = Pattern.compile("^[A-Za-z0-9\\-_]+$"); + /** * Validates the given policy. * @@ -53,6 +58,12 @@ public static void validate(PolicyEntity policy) { var type = PredefinedPolicyTypes.fromCode(policy.getPolicyTypeCode()); Preconditions.checkArgument(type != null, "Unknown policy type: " + policy.getPolicyTypeCode()); + Preconditions.checkArgument( + POLICY_NAME_PATTERN.matcher(policy.getName()).matches(), + "Invalid policy name: %s, A valid policy name should only consist of uppercase and lowercase letters (A-Z, a-z), digits" + + "(0-9), hyphens (-), underscores (_)", + policy.getName()); + switch (type) { case DATA_COMPACTION: DataCompactionPolicyContent.fromString(policy.getContent()); diff --git a/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java b/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java index 04435ba734..b0d288dce4 100644 --- a/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java +++ b/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java @@ -33,6 +33,8 @@ import org.apache.polaris.core.policy.validator.InvalidPolicyException; import org.apache.polaris.core.policy.validator.PolicyValidators; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; public class PolicyValidatorsTest { Namespace ns = Namespace.of("NS1"); @@ -129,4 +131,68 @@ public void testCanAttachReturnsFalseForUnattachableType() { var result = PolicyValidators.canAttach(policyEntity, targetEntity); assertThat(result).isFalse().as("Expected canAttach() to return false for null"); } + + @ParameterizedTest + @ValueSource( + strings = { + "valid_policy_name", + "another-valid-policy-name", + "policy_name_with_underscores", + "policyNameWithMixedCase", + "policyNameWith123Numbers", + "VALIDNAME", + "valid-name-123", + "valid_name_123", + "valid123", + "123valid-name_with-both", + "v" + }) + public void testValidPolicyName(String policyName) { + var policyEntity = + new PolicyEntity.Builder(ns, policyName, DATA_COMPACTION) + .setContent("{\"enable\": false}") + .setPolicyVersion(0) + .build(); + PolicyValidators.validate(policyEntity); + } + + @ParameterizedTest + @ValueSource( + strings = { + " invalid", + "invalid ", + " invalid ", + "", + "policy name", + "policy@name", + "policy#name", + "policy$name", + "policy!name", + "policy name with space", + "policy.name", + "policy,name", + "policy~name", + "policy`name", + "policy;name", + "policy:name", + "policy<>name", + "policy[]name", + "policy{}name", + "policy|name", + "policy\\name", + "policy/name", + "policy*name", + "policy^name", + "policy%name", + }) + public void testInvalidPolicyName(String policyName) { + var policyEntity = + new PolicyEntity.Builder(ns, policyName, DATA_COMPACTION) + .setContent("{\"enable\": false}") + .setPolicyVersion(0) + .build(); + assertThatThrownBy(() -> PolicyValidators.validate(policyEntity)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("Invalid policy name"); + } } diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java index 0ea91bb19c..86c2b97cf5 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java @@ -107,6 +107,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.mockito.Mockito; import software.amazon.awssdk.services.sts.StsClient; import software.amazon.awssdk.services.sts.model.AssumeRoleRequest; @@ -451,6 +453,49 @@ public void testCreatePolicyWithInvalidContent() { .isInstanceOf(InvalidPolicyException.class); } + @ParameterizedTest + @ValueSource( + strings = { + " invalid", + "invalid ", + " invalid ", + "", + "policy name", + "policy@name", + "policy#name", + "policy$name", + "policy!name", + "policy name with space", + "policy.name", + "policy,name", + "policy~name", + "policy`name", + "policy;name", + "policy:name", + "policy<>name", + "policy[]name", + "policy{}name", + "policy|name", + "policy\\name", + "policy/name", + "policy*name", + "policy^name", + "policy%name", + }) + public void testCreatePolicyWithInvalidName(String policyName) { + icebergCatalog.createNamespace(NS); + + assertThatThrownBy( + () -> + policyCatalog.createPolicy( + new PolicyIdentifier(NS, policyName), + PredefinedPolicyTypes.DATA_COMPACTION.getName(), + "test", + "invalid")) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("Invalid policy name"); + } + @Test public void testLoadPolicyNotExist() { icebergCatalog.createNamespace(NS); From 3e0b1752a838518f78d160f9688b6fc9deefbdef Mon Sep 17 00:00:00 2001 From: Honah J Date: Wed, 14 May 2025 13:39:06 -0700 Subject: [PATCH 2/3] enable validation in open api builder --- api/polaris-catalog-service/build.gradle.kts | 2 +- .../PolarisPolicyServiceIntegrationTest.java | 56 ++++++++++++++++ .../policy/validator/PolicyValidators.java | 10 --- .../core/policy/PolicyValidatorsTest.java | 64 ------------------- .../quarkus/catalog/PolicyCatalogTest.java | 43 ------------- 5 files changed, 57 insertions(+), 118 deletions(-) diff --git a/api/polaris-catalog-service/build.gradle.kts b/api/polaris-catalog-service/build.gradle.kts index 77b801b983..d8f2cbff4e 100644 --- a/api/polaris-catalog-service/build.gradle.kts +++ b/api/polaris-catalog-service/build.gradle.kts @@ -90,7 +90,7 @@ openApiGenerate { globalProperties.put("modelTests", "false") configOptions.put("resourceName", "catalog") configOptions.put("useTags", "true") - configOptions.put("useBeanValidation", "false") + configOptions.put("useBeanValidation", "true") configOptions.put("sourceFolder", "src/main/java") configOptions.put("useJakartaEe", "true") configOptions.put("generateBuilders", "true") diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java index 6166d5d65c..a69c185731 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java @@ -31,10 +31,14 @@ import java.util.Map; import java.util.Optional; import java.util.UUID; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; import org.apache.iceberg.Schema; import org.apache.iceberg.catalog.Namespace; import org.apache.iceberg.catalog.TableIdentifier; import org.apache.iceberg.rest.RESTCatalog; +import org.apache.iceberg.rest.RESTUtil; import org.apache.iceberg.types.Types; import org.apache.polaris.core.admin.model.AwsStorageConfigInfo; import org.apache.polaris.core.admin.model.Catalog; @@ -60,6 +64,8 @@ import org.apache.polaris.service.it.env.PolicyApi; import org.apache.polaris.service.it.ext.PolarisIntegrationTestExtension; import org.apache.polaris.service.types.ApplicablePolicy; +import org.apache.polaris.service.types.CreatePolicyRequest; +import org.apache.polaris.service.types.LoadPolicyResponse; import org.apache.polaris.service.types.Policy; import org.apache.polaris.service.types.PolicyAttachmentTarget; import org.apache.polaris.service.types.PolicyIdentifier; @@ -72,6 +78,8 @@ import org.junit.jupiter.api.TestInfo; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.io.TempDir; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; @ExtendWith(PolarisIntegrationTestExtension.class) public class PolarisPolicyServiceIntegrationTest { @@ -260,6 +268,54 @@ public void testCreatePolicy() { policyApi.dropPolicy(currentCatalogName, NS1_P1); } + @ParameterizedTest + @ValueSource(strings = { + " invalid", + "invalid ", + " invalid ", + "", + "policy name", + "policy@name", + "policy#name", + "policy$name", + "policy!name", + "policy name with space", + "policy.name", + "policy,name", + "policy~name", + "policy`name", + "policy;name", + "policy:name", + "policy<>name", + "policy[]name", + "policy{}name", + "policy|name", + "policy\\name", + "policy/name", + "policy*name", + "policy^name", + "policy%name", + }) + public void testCreatePolicyWithInvalidName(String policyName) { + restCatalog.createNamespace(NS1); + PolicyIdentifier policyIdentifier = new PolicyIdentifier(NS1, policyName); + + String ns = RESTUtil.encodeNamespace(policyIdentifier.getNamespace()); + CreatePolicyRequest request = + CreatePolicyRequest.builder() + .setType(PredefinedPolicyTypes.DATA_COMPACTION.getName()) + .setName(policyIdentifier.getName()) + .setDescription("test policy") + .setContent(EXAMPLE_TABLE_MAINTENANCE_POLICY_CONTENT) + .build(); + try (Response res = + policyApi.request("polaris/v1/{cat}/namespaces/{ns}/policies", Map.of("cat", currentCatalogName, "ns", ns)) + .post(Entity.json(request))) { + Assertions.assertThat(res.getStatus()).isEqualTo(Response.Status.BAD_REQUEST.getStatusCode()); + Assertions.assertThat(res.readEntity(String.class)).contains("{\"error\":{\"message\":\"Invalid value: createPolicy.arg2.name: must match \\\"^[A-Za-z0-9\\\\-_]+$\\\"\",\"type\":\"ResteasyReactiveViolationException\",\"code\":400}}"); + } + } + @Test public void testDropPolicy() { restCatalog.createNamespace(NS1); diff --git a/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java b/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java index 7bb25a74ac..c403195821 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java @@ -41,10 +41,6 @@ public class PolicyValidators { private static final Logger LOGGER = LoggerFactory.getLogger(PolicyValidators.class); - // A valid policy name should only consist of uppercase and lowercase letters (A-Z, a-z), digits - // (0-9), hyphens (-), underscores (_) - private static final Pattern POLICY_NAME_PATTERN = Pattern.compile("^[A-Za-z0-9\\-_]+$"); - /** * Validates the given policy. * @@ -58,12 +54,6 @@ public static void validate(PolicyEntity policy) { var type = PredefinedPolicyTypes.fromCode(policy.getPolicyTypeCode()); Preconditions.checkArgument(type != null, "Unknown policy type: " + policy.getPolicyTypeCode()); - Preconditions.checkArgument( - POLICY_NAME_PATTERN.matcher(policy.getName()).matches(), - "Invalid policy name: %s, A valid policy name should only consist of uppercase and lowercase letters (A-Z, a-z), digits" - + "(0-9), hyphens (-), underscores (_)", - policy.getName()); - switch (type) { case DATA_COMPACTION: DataCompactionPolicyContent.fromString(policy.getContent()); diff --git a/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java b/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java index b0d288dce4..460009ca58 100644 --- a/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java +++ b/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java @@ -131,68 +131,4 @@ public void testCanAttachReturnsFalseForUnattachableType() { var result = PolicyValidators.canAttach(policyEntity, targetEntity); assertThat(result).isFalse().as("Expected canAttach() to return false for null"); } - - @ParameterizedTest - @ValueSource( - strings = { - "valid_policy_name", - "another-valid-policy-name", - "policy_name_with_underscores", - "policyNameWithMixedCase", - "policyNameWith123Numbers", - "VALIDNAME", - "valid-name-123", - "valid_name_123", - "valid123", - "123valid-name_with-both", - "v" - }) - public void testValidPolicyName(String policyName) { - var policyEntity = - new PolicyEntity.Builder(ns, policyName, DATA_COMPACTION) - .setContent("{\"enable\": false}") - .setPolicyVersion(0) - .build(); - PolicyValidators.validate(policyEntity); - } - - @ParameterizedTest - @ValueSource( - strings = { - " invalid", - "invalid ", - " invalid ", - "", - "policy name", - "policy@name", - "policy#name", - "policy$name", - "policy!name", - "policy name with space", - "policy.name", - "policy,name", - "policy~name", - "policy`name", - "policy;name", - "policy:name", - "policy<>name", - "policy[]name", - "policy{}name", - "policy|name", - "policy\\name", - "policy/name", - "policy*name", - "policy^name", - "policy%name", - }) - public void testInvalidPolicyName(String policyName) { - var policyEntity = - new PolicyEntity.Builder(ns, policyName, DATA_COMPACTION) - .setContent("{\"enable\": false}") - .setPolicyVersion(0) - .build(); - assertThatThrownBy(() -> PolicyValidators.validate(policyEntity)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("Invalid policy name"); - } } diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java index 86c2b97cf5..e80126a7a4 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java @@ -453,49 +453,6 @@ public void testCreatePolicyWithInvalidContent() { .isInstanceOf(InvalidPolicyException.class); } - @ParameterizedTest - @ValueSource( - strings = { - " invalid", - "invalid ", - " invalid ", - "", - "policy name", - "policy@name", - "policy#name", - "policy$name", - "policy!name", - "policy name with space", - "policy.name", - "policy,name", - "policy~name", - "policy`name", - "policy;name", - "policy:name", - "policy<>name", - "policy[]name", - "policy{}name", - "policy|name", - "policy\\name", - "policy/name", - "policy*name", - "policy^name", - "policy%name", - }) - public void testCreatePolicyWithInvalidName(String policyName) { - icebergCatalog.createNamespace(NS); - - assertThatThrownBy( - () -> - policyCatalog.createPolicy( - new PolicyIdentifier(NS, policyName), - PredefinedPolicyTypes.DATA_COMPACTION.getName(), - "test", - "invalid")) - .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("Invalid policy name"); - } - @Test public void testLoadPolicyNotExist() { icebergCatalog.createNamespace(NS); From 7a13991363f6702d97d2c64d49c96e0e81a30eb9 Mon Sep 17 00:00:00 2001 From: Honah J Date: Wed, 14 May 2025 13:39:51 -0700 Subject: [PATCH 3/3] FIx nit --- .../PolarisPolicyServiceIntegrationTest.java | 84 ++++++++++--------- .../policy/validator/PolicyValidators.java | 1 - .../core/policy/PolicyValidatorsTest.java | 2 - .../quarkus/catalog/PolicyCatalogTest.java | 2 - 4 files changed, 44 insertions(+), 45 deletions(-) diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java index a69c185731..45a9893d08 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisPolicyServiceIntegrationTest.java @@ -21,6 +21,8 @@ import static org.apache.polaris.service.it.env.PolarisClient.polarisClient; import com.google.common.collect.ImmutableMap; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; @@ -31,9 +33,6 @@ import java.util.Map; import java.util.Optional; import java.util.UUID; - -import jakarta.ws.rs.client.Entity; -import jakarta.ws.rs.core.Response; import org.apache.iceberg.Schema; import org.apache.iceberg.catalog.Namespace; import org.apache.iceberg.catalog.TableIdentifier; @@ -65,7 +64,6 @@ import org.apache.polaris.service.it.ext.PolarisIntegrationTestExtension; import org.apache.polaris.service.types.ApplicablePolicy; import org.apache.polaris.service.types.CreatePolicyRequest; -import org.apache.polaris.service.types.LoadPolicyResponse; import org.apache.polaris.service.types.Policy; import org.apache.polaris.service.types.PolicyAttachmentTarget; import org.apache.polaris.service.types.PolicyIdentifier; @@ -269,50 +267,56 @@ public void testCreatePolicy() { } @ParameterizedTest - @ValueSource(strings = { - " invalid", - "invalid ", - " invalid ", - "", - "policy name", - "policy@name", - "policy#name", - "policy$name", - "policy!name", - "policy name with space", - "policy.name", - "policy,name", - "policy~name", - "policy`name", - "policy;name", - "policy:name", - "policy<>name", - "policy[]name", - "policy{}name", - "policy|name", - "policy\\name", - "policy/name", - "policy*name", - "policy^name", - "policy%name", - }) + @ValueSource( + strings = { + " invalid", + "invalid ", + " invalid ", + "", + "policy name", + "policy@name", + "policy#name", + "policy$name", + "policy!name", + "policy name with space", + "policy.name", + "policy,name", + "policy~name", + "policy`name", + "policy;name", + "policy:name", + "policy<>name", + "policy[]name", + "policy{}name", + "policy|name", + "policy\\name", + "policy/name", + "policy*name", + "policy^name", + "policy%name", + }) public void testCreatePolicyWithInvalidName(String policyName) { restCatalog.createNamespace(NS1); PolicyIdentifier policyIdentifier = new PolicyIdentifier(NS1, policyName); String ns = RESTUtil.encodeNamespace(policyIdentifier.getNamespace()); CreatePolicyRequest request = - CreatePolicyRequest.builder() - .setType(PredefinedPolicyTypes.DATA_COMPACTION.getName()) - .setName(policyIdentifier.getName()) - .setDescription("test policy") - .setContent(EXAMPLE_TABLE_MAINTENANCE_POLICY_CONTENT) - .build(); + CreatePolicyRequest.builder() + .setType(PredefinedPolicyTypes.DATA_COMPACTION.getName()) + .setName(policyIdentifier.getName()) + .setDescription("test policy") + .setContent(EXAMPLE_TABLE_MAINTENANCE_POLICY_CONTENT) + .build(); try (Response res = - policyApi.request("polaris/v1/{cat}/namespaces/{ns}/policies", Map.of("cat", currentCatalogName, "ns", ns)) - .post(Entity.json(request))) { + policyApi + .request( + "polaris/v1/{cat}/namespaces/{ns}/policies", + Map.of("cat", currentCatalogName, "ns", ns)) + .post(Entity.json(request))) { Assertions.assertThat(res.getStatus()).isEqualTo(Response.Status.BAD_REQUEST.getStatusCode()); - Assertions.assertThat(res.readEntity(String.class)).contains("{\"error\":{\"message\":\"Invalid value: createPolicy.arg2.name: must match \\\"^[A-Za-z0-9\\\\-_]+$\\\"\",\"type\":\"ResteasyReactiveViolationException\",\"code\":400}}"); + Assertions.assertThat(res.readEntity(String.class)) + .contains( + "{\"error\":{\"message\":\"Invalid value: createPolicy.arg2.name: must match \\\"^[A-Za-z0-9\\\\-_]+$\\\"\",\"type\":\"ResteasyReactiveViolationException\",\"code\":400}}"); } } diff --git a/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java b/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java index c403195821..3be2387833 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/policy/validator/PolicyValidators.java @@ -19,7 +19,6 @@ package org.apache.polaris.core.policy.validator; import com.google.common.base.Preconditions; -import java.util.regex.Pattern; import org.apache.polaris.core.entity.PolarisEntity; import org.apache.polaris.core.policy.PolicyEntity; import org.apache.polaris.core.policy.PredefinedPolicyTypes; diff --git a/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java b/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java index 460009ca58..04435ba734 100644 --- a/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java +++ b/polaris-core/src/test/java/org/apache/polaris/core/policy/PolicyValidatorsTest.java @@ -33,8 +33,6 @@ import org.apache.polaris.core.policy.validator.InvalidPolicyException; import org.apache.polaris.core.policy.validator.PolicyValidators; import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; public class PolicyValidatorsTest { Namespace ns = Namespace.of("NS1"); diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java index e80126a7a4..0ea91bb19c 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolicyCatalogTest.java @@ -107,8 +107,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; import org.mockito.Mockito; import software.amazon.awssdk.services.sts.StsClient; import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;