diff --git a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/TestHiveCatalogOperations.java b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/TestHiveCatalogOperations.java index 3ef1a18cee3..907fe850f68 100644 --- a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/TestHiveCatalogOperations.java +++ b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/TestHiveCatalogOperations.java @@ -95,7 +95,7 @@ void testPropertyMeta() { propertyEntryMap.containsKey(AuthorizationPropertiesMetadata.RANGER_SERVICE_NAME)); Assertions.assertTrue( propertyEntryMap.containsKey( - AuthorizationPropertiesMetadata.getInstance().wildcardPropertyKey())); + AuthorizationPropertiesMetadata.getInstance().prefixWildcardSegmentName())); Assertions.assertTrue( propertyEntryMap.containsKey(AuthorizationPropertiesMetadata.CHAIN_CATALOG_PROVIDER)); Assertions.assertTrue( diff --git a/core/src/main/java/org/apache/gravitino/authorization/AuthorizationPropertiesMetadata.java b/core/src/main/java/org/apache/gravitino/authorization/AuthorizationPropertiesMetadata.java index 283653447c6..314d5929185 100644 --- a/core/src/main/java/org/apache/gravitino/authorization/AuthorizationPropertiesMetadata.java +++ b/core/src/main/java/org/apache/gravitino/authorization/AuthorizationPropertiesMetadata.java @@ -39,8 +39,11 @@ public static synchronized AuthorizationPropertiesMetadata getInstance() { return instance; } - public static final String FIRST_SEGMENT_NAME = "authorization"; - public static final String SECOND_SEGMENT_NAME = "chain"; + static AuthorizationPropertiesMetadata authPropInstance = + AuthorizationPropertiesMetadata.getInstance(); + + public static final String FIRST_NODE_NAME = "authorization"; + public static final String CHAIN_NODE_NAME = "chain"; /** Ranger admin web URIs */ private static final String RANGER_ADMIN_URL_KEY = "ranger.admin.url"; @@ -50,7 +53,7 @@ public static String getRangerAdminUrlKey() { } public static final String RANGER_ADMIN_URL = - String.format("%s.%s", FIRST_SEGMENT_NAME, RANGER_ADMIN_URL_KEY); + String.format("%s.%s", FIRST_NODE_NAME, RANGER_ADMIN_URL_KEY); /** Ranger authentication type kerberos or simple */ private static final String RANGER_AUTH_TYPE_KEY = "ranger.auth.type"; @@ -59,7 +62,7 @@ public static String getRangerAuthTypeKey() { } public static final String RANGER_AUTH_TYPE = - String.format("%s.%s", FIRST_SEGMENT_NAME, RANGER_AUTH_TYPE_KEY); + String.format("%s.%s", FIRST_NODE_NAME, RANGER_AUTH_TYPE_KEY); /** * Ranger admin web login username(auth_type=simple), or kerberos principal(auth_type=kerberos) */ @@ -70,7 +73,7 @@ public static String getRangerUsernameKey() { } public static final String RANGER_USERNAME = - String.format("%s.%s", FIRST_SEGMENT_NAME, RANGER_USERNAME_KEY); + String.format("%s.%s", FIRST_NODE_NAME, RANGER_USERNAME_KEY); /** * Ranger admin web login user password(auth_type=simple), or path of the keytab * file(auth_type=kerberos) @@ -82,7 +85,7 @@ public static String getRangerPasswordKey() { } public static final String RANGER_PASSWORD = - String.format("%s.%s", FIRST_SEGMENT_NAME, RANGER_PASSWORD_KEY); + String.format("%s.%s", FIRST_NODE_NAME, RANGER_PASSWORD_KEY); /** Ranger service name */ private static final String RANGER_SERVICE_NAME_KEY = "ranger.service.name"; @@ -92,7 +95,7 @@ public static String getRangerServiceNameKey() { } public static final String RANGER_SERVICE_NAME = - String.format("%s.%s", FIRST_SEGMENT_NAME, RANGER_SERVICE_NAME_KEY); + String.format("%s.%s", FIRST_NODE_NAME, RANGER_SERVICE_NAME_KEY); /** Chain authorization plugin provider */ private static final String CHAIN_CATALOG_PROVIDER_KEY = "catalog-provider"; @@ -102,8 +105,7 @@ public static String getChainCatalogProviderKey() { } public static final String CHAIN_CATALOG_PROVIDER = - AuthorizationPropertiesMetadata.getInstance() - .getPropertyValue(WILDCARD, CHAIN_CATALOG_PROVIDER_KEY); + authPropInstance.getFullPropertyName(WILDCARD, CHAIN_CATALOG_PROVIDER_KEY); /** Chain authorization plugin provider */ private static final String CHAIN_PROVIDER_KEY = "provider"; @@ -113,35 +115,32 @@ public static String getChainProviderKey() { } public static final String CHAIN_PROVIDER = - AuthorizationPropertiesMetadata.getInstance().getPropertyValue(WILDCARD, CHAIN_PROVIDER_KEY); + authPropInstance.getFullPropertyName(WILDCARD, CHAIN_PROVIDER_KEY); /** Chain authorization Ranger admin web URIs */ public static final String CHAIN_RANGER_ADMIN_URL = - AuthorizationPropertiesMetadata.getInstance() - .getPropertyValue(WILDCARD, RANGER_ADMIN_URL_KEY); + authPropInstance.getFullPropertyName(WILDCARD, RANGER_ADMIN_URL_KEY); /** Chain authorization Ranger authentication type kerberos or simple */ public static final String CHAIN_RANGER_AUTH_TYPES = - AuthorizationPropertiesMetadata.getInstance() - .getPropertyValue(WILDCARD, RANGER_AUTH_TYPE_KEY); + authPropInstance.getFullPropertyName(WILDCARD, RANGER_AUTH_TYPE_KEY); /** Chain authorization Ranger username */ public static final String CHAIN_RANGER_USERNAME = - AuthorizationPropertiesMetadata.getInstance().getPropertyValue(WILDCARD, RANGER_USERNAME_KEY); + authPropInstance.getFullPropertyName(WILDCARD, RANGER_USERNAME_KEY); /** * Chain authorization Ranger admin web login user password(auth_type=simple), or path of the * keytab file(auth_type=kerberos) */ public static final String CHAIN_RANGER_PASSWORD = - AuthorizationPropertiesMetadata.getInstance().getPropertyValue(WILDCARD, RANGER_PASSWORD_KEY); + authPropInstance.getFullPropertyName(WILDCARD, RANGER_PASSWORD_KEY); /** Chain authorization Ranger service name */ public static final String CHAIN_RANGER_SERVICE_NAME = - AuthorizationPropertiesMetadata.getInstance() - .getPropertyValue(WILDCARD, RANGER_SERVICE_NAME_KEY); + authPropInstance.getFullPropertyName(WILDCARD, RANGER_SERVICE_NAME_KEY); public static final Map> AUTHORIZATION_PROPERTY_ENTRIES = ImmutableMap.>builder() .put( - AuthorizationPropertiesMetadata.getInstance().wildcardPropertyKey(), + authPropInstance.prefixWildcardSegmentName(), PropertyEntry.wildcardPropertyEntry( - AuthorizationPropertiesMetadata.getInstance().wildcardPropertyKey(), + authPropInstance.prefixWildcardSegmentName(), "The Chain authorization plugins", true, false)) @@ -224,7 +223,7 @@ protected Map> specificPropertyEntries() { @Override public String prefixName() { - return String.format("%s.%s", FIRST_SEGMENT_NAME, SECOND_SEGMENT_NAME); + return String.format("%s.%s", FIRST_NODE_NAME, CHAIN_NODE_NAME); } @Override diff --git a/core/src/main/java/org/apache/gravitino/connector/WildcardPropertiesMetadata.java b/core/src/main/java/org/apache/gravitino/connector/WildcardPropertiesMetadata.java index 651a7cc548e..cd8f6d440b3 100644 --- a/core/src/main/java/org/apache/gravitino/connector/WildcardPropertiesMetadata.java +++ b/core/src/main/java/org/apache/gravitino/connector/WildcardPropertiesMetadata.java @@ -39,15 +39,6 @@ * NOTE: Suffix properties-key{N} support multiple segment, separated by dot. for example: * "x1.y1.z1"
*
- * Use define a WildcardPropertiesMetadata object:
- * a1.b1.c1.Wildcard = "WildcardValue1,WildcardValue2"
- * a1.b1.c1.{WildcardValue1}.x1.y1.z1 = "WildcardValue1 property value"
- * a1.b1.c1.{WildcardValue1}.x1.y2.z2 = "WildcardValue1 property value"
- * a1.b1.c1.{WildcardValue1}.x1.y2.z3 = "WildcardValue1 property value"
- * a1.b1.c1.{WildcardValue2}.x1.y1.z1 = "WildcardValue2 property value"
- * a1.b1.c1.{WildcardValue2}.x1.y2.z2 = "WildcardValue2 property value"
- * a1.b1.c1.{WildcardValue2}.x1.y2.z3 = "WildcardValue2 property value"
- *
* Configuration Example: {@link AuthorizationPropertiesMetadata},
* The Prefix is "authorization.chain",
* The Wildcard is "plugins"
@@ -77,14 +68,14 @@ public interface WildcardPropertiesMetadata { /** The WildcardNode define name */ String wildcardName(); - /** The `Prefix.Wildcard` properties key name */ - default String wildcardPropertyKey() { + /** The `Prefix.Wildcard` properties segment name */ + default String prefixWildcardSegmentName() { return String.format("%s.%s", prefixName(), wildcardName()); } - /** Get the property value by wildcard value and property key */ - default String getPropertyValue(String wildcardValue, String propertyKey) { - return String.format("%s.%s.%s", prefixName(), wildcardValue, propertyKey); + /** Get the full name property name by wildcard value and property key */ + default String getFullPropertyName(String wildcardValue, String suffixName) { + return String.format("%s.%s.%s", prefixName(), wildcardValue, suffixName); } /** @@ -101,75 +92,70 @@ static void validate(PropertiesMetadata propertiesMetadata, Map propertiesMetadata.propertyEntries().keySet().stream() .filter(propertiesMetadata::isWildcardProperty) .collect(Collectors.toList()); - if (wildcardProperties.size() > 0) { - // Find the wildcard config key from the properties - List wildcardNodePropertyKeys = - wildcardProperties.stream() - .filter(key -> !key.contains(WildcardPropertiesMetadata.WILDCARD)) - .collect(Collectors.toList()); - Preconditions.checkArgument( - wildcardNodePropertyKeys.size() == 1, - "Only one wildcard config key is allowed, found: %s", - wildcardNodePropertyKeys); - String wildcardNodePropertyKey = wildcardNodePropertyKeys.get(0); - String wildcardValue = properties.get(wildcardNodePropertyKey); - if (wildcardValue == null || wildcardValue.isEmpty()) { - return; - } + if (wildcardProperties.isEmpty()) { + return; + } - // Get the wildcard values from the properties - List wildcardValues = - Arrays.stream(wildcardValue.split(WILDCARD_CONFIG_VALUES_SPLITTER)) - .map(String::trim) - .collect(Collectors.toList()); - wildcardValues.stream() - .filter(v -> v.contains(".")) - .forEach( - v -> { - throw new IllegalArgumentException( - String.format( - "Wildcard property values cannot be set with `.` character in the `%s = %s`.", - wildcardNodePropertyKey, properties.get(wildcardNodePropertyKey))); - }); - Preconditions.checkArgument( - wildcardValues.size() == wildcardValues.stream().distinct().count(), - "Duplicate values in wildcard config values: %s", - wildcardValues); + // Find the wildcard config key from the properties + List wildcardNodePropertyKeys = + wildcardProperties.stream() + .filter(key -> !key.contains(WILDCARD)) + .collect(Collectors.toList()); + Preconditions.checkArgument( + wildcardNodePropertyKeys.size() == 1, + "Only one wildcard config key is allowed, found: %s", + wildcardNodePropertyKeys); + String wildcardNodePropertyKey = wildcardNodePropertyKeys.get(0); + String wildcardValue = properties.get(wildcardNodePropertyKey); + if (wildcardValue == null || wildcardValue.isEmpty()) { + return; + } - // Get all wildcard properties with wildcard values - List patterns = - wildcardProperties.stream() - .filter(k -> k.contains(WILDCARD)) - .collect(Collectors.toList()) - .stream() - .map(wildcard -> wildcard.replace(".", "\\.").replace(WILDCARD, "([^.]+)")) - .map(Pattern::compile) - .collect(Collectors.toList()); + // Get the wildcard values from the properties + List wildcardValues = + Arrays.stream(wildcardValue.split(WILDCARD_CONFIG_VALUES_SPLITTER)) + .map(String::trim) + .collect(Collectors.toList()); + wildcardValues.stream() + .filter(v -> v.contains(".")) + .forEach( + v -> { + throw new IllegalArgumentException( + String.format( + "Wildcard property values cannot be set with `.` character in the `%s = %s`.", + wildcardNodePropertyKey, properties.get(wildcardNodePropertyKey))); + }); + Preconditions.checkArgument( + wildcardValues.size() == wildcardValues.stream().distinct().count(), + "Duplicate values in wildcard config values: %s", + wildcardValues); - String secondNodePropertyKey = ((WildcardPropertiesMetadata) propertiesMetadata).prefixName(); - for (String key : - properties.keySet().stream() - .filter( - k -> !k.equals(wildcardNodePropertyKey) && k.startsWith(secondNodePropertyKey)) - .collect(Collectors.toList())) { - boolean matches = - patterns.stream() - .anyMatch( - pattern -> { - Matcher matcher = pattern.matcher(key); - if (matcher.find()) { - String group = matcher.group(1); - return wildcardValues.contains(group); - } else { - return false; - } - }); - Preconditions.checkArgument( - matches, - "Wildcard properties `%s` not a valid wildcard config with values: %s", - key, - wildcardValues); - } - } + // Get all wildcard properties with wildcard values + List patterns = + wildcardProperties.stream() + .filter(k -> k.contains(WILDCARD)) + .collect(Collectors.toList()) + .stream() + .map(wildcard -> wildcard.replace(".", "\\.").replace(WILDCARD, "([^.]+)")) + .map(Pattern::compile) + .collect(Collectors.toList()); + + List noMatch = + properties.keySet().stream() + .filter( + key -> + patterns.stream() + .anyMatch( + pattern -> { + Matcher matcher = pattern.matcher(key); + return matcher.matches() + && !wildcardValues.contains(matcher.group(1)); + })) + .collect(Collectors.toList()); + Preconditions.checkArgument( + noMatch.isEmpty(), + "Wildcard properties `%s` not a valid wildcard config with values: %s", + noMatch, + wildcardValues); } } diff --git a/core/src/test/java/org/apache/gravitino/TestAuthorizationPropertiesMeta.java b/core/src/test/java/org/apache/gravitino/connector/authorization/TestAuthorizationPropertiesMeta.java similarity index 90% rename from core/src/test/java/org/apache/gravitino/TestAuthorizationPropertiesMeta.java rename to core/src/test/java/org/apache/gravitino/connector/authorization/TestAuthorizationPropertiesMeta.java index 1a717ff56a1..9d93e0bfcc9 100644 --- a/core/src/test/java/org/apache/gravitino/TestAuthorizationPropertiesMeta.java +++ b/core/src/test/java/org/apache/gravitino/connector/authorization/TestAuthorizationPropertiesMeta.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.gravitino; +package org.apache.gravitino.connector.authorization; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -35,14 +35,14 @@ public class TestAuthorizationPropertiesMeta { private static final Logger LOG = LoggerFactory.getLogger(TestAuthorizationPropertiesMeta.class); @Test - public void checkChainPropertyDefines() throws IllegalAccessException { + public void checkAuthPropertyDefines() throws IllegalAccessException { Map mapVariable = getPublicStaticVariableFromClass(AuthorizationPropertiesMetadata.class); List ignoreChecks = Arrays.asList( AuthorizationPropertiesMetadata.CHAIN_CATALOG_PROVIDER, AuthorizationPropertiesMetadata.CHAIN_PROVIDER, - AuthorizationPropertiesMetadata.getInstance().wildcardPropertyKey()); + AuthorizationPropertiesMetadata.getInstance().prefixWildcardSegmentName()); mapVariable.values().stream() .forEach( value -> { @@ -51,8 +51,8 @@ public void checkChainPropertyDefines() throws IllegalAccessException { String pluginPropValue = value.replace( AuthorizationPropertiesMetadata.getInstance() - .getPropertyValue(WildcardPropertiesMetadata.WILDCARD, ""), - String.format("%s.", AuthorizationPropertiesMetadata.FIRST_SEGMENT_NAME)); + .getFullPropertyName(WildcardPropertiesMetadata.WILDCARD, ""), + String.format("%s.", AuthorizationPropertiesMetadata.FIRST_NODE_NAME)); LOG.info("Checking variable: {}, pluginPropValue: {}", value, pluginPropValue); Assertions.assertTrue( mapVariable.values().contains(pluginPropValue), diff --git a/core/src/test/java/org/apache/gravitino/TestChainAuthorizationPropertiesMeta.java b/core/src/test/java/org/apache/gravitino/connector/authorization/TestChainAuthorizationPropertiesMeta.java similarity index 87% rename from core/src/test/java/org/apache/gravitino/TestChainAuthorizationPropertiesMeta.java rename to core/src/test/java/org/apache/gravitino/connector/authorization/TestChainAuthorizationPropertiesMeta.java index 35d3f7056aa..45ee2a36b8d 100644 --- a/core/src/test/java/org/apache/gravitino/TestChainAuthorizationPropertiesMeta.java +++ b/core/src/test/java/org/apache/gravitino/connector/authorization/TestChainAuthorizationPropertiesMeta.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.gravitino; +package org.apache.gravitino.connector.authorization; import static org.apache.gravitino.Catalog.AUTHORIZATION_PROVIDER; import static org.apache.gravitino.catalog.hive.HiveConstants.IMPERSONATION_ENABLE; @@ -33,10 +33,10 @@ import org.junit.jupiter.api.Test; public class TestChainAuthorizationPropertiesMeta { - private static final AuthorizationPropertiesMetadata authPropertiesMetaInstance = + private static final AuthorizationPropertiesMetadata authPropInstance = AuthorizationPropertiesMetadata.getInstance(); private static final String CHAIN_PLUGIN_SHORT_NAME = - AuthorizationPropertiesMetadata.SECOND_SEGMENT_NAME; + AuthorizationPropertiesMetadata.CHAIN_NODE_NAME; @Test void testChainHiveCatalog() { @@ -47,32 +47,32 @@ void testChainHiveCatalog() { properties.put(IMPERSONATION_ENABLE, "true"); properties.put(AUTHORIZATION_PROVIDER, CHAIN_PLUGIN_SHORT_NAME); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getChainCatalogProviderKey()), "hive"); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), pluginName); + properties.put(authPropInstance.prefixWildcardSegmentName(), pluginName); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getChainProviderKey()), CHAIN_PLUGIN_SHORT_NAME); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getRangerAuthTypeKey()), RangerContainer.authType); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getRangerAdminUrlKey()), "http://localhost:" + RangerContainer.RANGER_SERVER_PORT); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getRangerUsernameKey()), RangerContainer.rangerUserName); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getRangerPasswordKey()), RangerContainer.rangerPassword); properties.put( - authPropertiesMetaInstance.getPropertyValue( + authPropInstance.getFullPropertyName( pluginName, AuthorizationPropertiesMetadata.getRangerServiceNameKey()), "hiveDev"); PropertiesMetadata authorizationPropertiesMeta = new AuthorizationPropertiesMetadata(); @@ -89,7 +89,7 @@ void test1() { properties.put(IMPERSONATION_ENABLE, "true"); properties.put(AUTHORIZATION_PROVIDER, CHAIN_PLUGIN_SHORT_NAME); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1,hdfs1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1,hdfs1"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -111,7 +111,7 @@ void test1() { @Test void testWildcardPropertyChainPluginsOne() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -129,7 +129,7 @@ void testWildcardPropertyChainPluginsOne() { @Test void testWildcardPropertyChainPluginsTwo() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1,hdfs1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1,hdfs1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -154,7 +154,7 @@ void testWildcardPropertyChainPluginsTwo() { @Test void testWildcardPropertyChainPluginsHasSpace() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1, hdfs1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1, hdfs1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -179,7 +179,7 @@ void testWildcardPropertyChainPluginsHasSpace() { @Test void testWildcardPropertyChainPluginsOneButHasTowPluginConfig() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -205,7 +205,7 @@ void testWildcardPropertyChainPluginsOneButHasTowPluginConfig() { @Test void testWildcardPropertyChainPluginsHasPoint() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "plug.1, hdfs1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "plug.1, hdfs1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.plug.1.ranger.auth.type", "simple"); @@ -231,7 +231,7 @@ void testWildcardPropertyChainPluginsHasPoint() { @Test void testWildcardPropertyChainPluginErrorPluginName() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1,hdfs1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1,hdfs1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -257,7 +257,7 @@ void testWildcardPropertyChainPluginErrorPluginName() { @Test void testWildcardPropertyChainPluginDuplicationPluginName() { Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1,hive1,hdfs1"); + properties.put(authPropInstance.prefixWildcardSegmentName(), "hive1,hive1,hdfs1"); properties.put("authorization.chain.hive1.provider", "ranger"); properties.put("authorization.chain.hive1.catalog-provider", "hive"); properties.put("authorization.chain.hive1.ranger.auth.type", "simple"); @@ -279,19 +279,4 @@ void testWildcardPropertyChainPluginDuplicationPluginName() { PropertiesMetadataHelpers.validatePropertyForCreate( authorizationPropertiesMeta, properties)); } - - @Test - void testWildcardPropertyChainPluginErrorPropertyKey() { - Map properties = Maps.newHashMap(); - properties.put(authPropertiesMetaInstance.wildcardPropertyKey(), "hive1"); - properties.put("authorization.chain.hive1.provider", "ranger"); - properties.put("authorization.chain.hive1.catalog-provider", "hive"); - properties.put("authorization.chain.hive1.ranger-error.auth.types", "simple"); - PropertiesMetadata authorizationPropertiesMeta = new AuthorizationPropertiesMetadata(); - Assertions.assertThrows( - IllegalArgumentException.class, - () -> - PropertiesMetadataHelpers.validatePropertyForCreate( - authorizationPropertiesMeta, properties)); - } }