From db6de1689befd514b1873ccd8ffd709359f84677 Mon Sep 17 00:00:00 2001 From: Sandor Molnar Date: Fri, 3 Jun 2022 07:07:03 +0200 Subject: [PATCH] KNOX-2757 - HadoopGroupProvider parameters should be added to the filter even there is a gateway level property with CENTRAL_GROUP_CONFIG_PREFIX --- .gitignore | 1 + .../pom.xml | 4 + .../pom.xml | 4 + ...oopGroupProviderDeploymentContributor.java | 83 ++++++++++------- .../filter/HadoopGroupProviderMessages.java | 3 + ...roupProviderDeploymentContributorTest.java | 89 +++++++++++++++++-- gateway-provider-security-hadoopauth/pom.xml | 4 + gateway-server/pom.xml | 4 + gateway-spi-common/pom.xml | 64 +++++++++++++ .../knox/gateway/GatewayTestConfig.java | 14 +-- .../descriptor/impl/FilterDescriptorImpl.java | 0 .../impl/FilterParamDescriptorImpl.java | 0 .../impl/GatewayDescriptorImpl.java | 0 .../impl/GatewayParamDescriptorImpl.java | 0 .../impl/ResourceDescriptorImpl.java | 2 +- .../impl/ResourceParamDescriptorImpl.java | 0 gateway-test-release-utils/pom.xml | 4 + .../webhdfs-kerb-test/pom.xml | 5 ++ gateway-test-release/webhdfs-test/pom.xml | 6 ++ gateway-test/pom.xml | 5 ++ pom.xml | 6 ++ 21 files changed, 254 insertions(+), 44 deletions(-) create mode 100644 gateway-spi-common/pom.xml rename {gateway-test-release-utils => gateway-spi-common}/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java (98%) rename {gateway-server => gateway-spi-common}/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterDescriptorImpl.java (100%) rename {gateway-server => gateway-spi-common}/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterParamDescriptorImpl.java (100%) rename {gateway-server => gateway-spi-common}/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayDescriptorImpl.java (100%) rename {gateway-server => gateway-spi-common}/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayParamDescriptorImpl.java (100%) rename {gateway-server => gateway-spi-common}/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java (98%) rename {gateway-server => gateway-spi-common}/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceParamDescriptorImpl.java (100%) diff --git a/.gitignore b/.gitignore index 9509354521..720fdfb43e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ velocity.log *.pyc *.py~ *.patch +.checkstyle # other IDEs and editors .vscode diff --git a/gateway-provider-identity-assertion-common/pom.xml b/gateway-provider-identity-assertion-common/pom.xml index e8b532e685..5acc72a889 100644 --- a/gateway-provider-identity-assertion-common/pom.xml +++ b/gateway-provider-identity-assertion-common/pom.xml @@ -37,6 +37,10 @@ org.apache.knox gateway-spi + + org.apache.knox + gateway-spi-common + org.apache.knox gateway-provider-rewrite diff --git a/gateway-provider-identity-assertion-hadoop-groups/pom.xml b/gateway-provider-identity-assertion-hadoop-groups/pom.xml index 61a74cd16d..024eaeb44a 100644 --- a/gateway-provider-identity-assertion-hadoop-groups/pom.xml +++ b/gateway-provider-identity-assertion-hadoop-groups/pom.xml @@ -37,6 +37,10 @@ org.apache.knox gateway-spi + + org.apache.knox + gateway-spi-common + org.apache.knox gateway-provider-identity-assertion-common diff --git a/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributor.java b/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributor.java index eef49197c8..6c6696eb15 100644 --- a/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributor.java +++ b/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributor.java @@ -18,9 +18,11 @@ package org.apache.knox.gateway.identityasserter.hadoop.groups.filter; import org.apache.hadoop.conf.Configuration; +import org.apache.knox.gateway.config.GatewayConfig; import org.apache.knox.gateway.deploy.DeploymentContext; import org.apache.knox.gateway.descriptor.FilterParamDescriptor; import org.apache.knox.gateway.descriptor.ResourceDescriptor; +import org.apache.knox.gateway.i18n.messages.MessagesFactory; import org.apache.knox.gateway.identityasserter.common.filter.AbstractIdentityAsserterDeploymentContributor; import org.apache.knox.gateway.topology.Provider; import org.apache.knox.gateway.topology.Service; @@ -46,6 +48,10 @@ public class HadoopGroupProviderDeploymentContributor */ public static final String HADOOP_GROUP_PROVIDER = "HadoopGroupProvider"; + private static final HadoopGroupProviderMessages LOG = MessagesFactory.get(HadoopGroupProviderMessages.class); + + static final String CENTRAL_GROUP_CONFIG_PREFIX_PARAM_NAME = "CENTRAL_GROUP_CONFIG_PREFIX"; + /* create an instance */ public HadoopGroupProviderDeploymentContributor() { super(); @@ -62,46 +68,57 @@ protected String getFilterClassname() { } @Override - public void contributeFilter( DeploymentContext context, Provider provider, Service service, - ResourceDescriptor resource, List params ) { - Map p = provider.getParams(); - String prefix = p.get("CENTRAL_GROUP_CONFIG_PREFIX"); + public void contributeFilter(DeploymentContext context, Provider provider, Service service, ResourceDescriptor resource, List params) { + final List filterParams = params == null ? new ArrayList<>() : new ArrayList<>(params); + + // add group mapping parameters from gateway-site.xml, if any + final List groupMappingParamsList = getParamsFromGatewaySiteWithCentralGroupConfigPrefix(provider, context, resource); + filterParams.addAll(groupMappingParamsList); + + // add provider parameters except for the CENTRAL_GROUP_CONFIG_PREFIX_PARAM_NAME one (that is used only to provide a bridge between the gateway and provider levels) + provider.getParams().entrySet().stream().filter(entry -> !entry.getKey().startsWith(CENTRAL_GROUP_CONFIG_PREFIX_PARAM_NAME)).forEach(entry -> { + // if a property already exists with the same name as this provider parameter, it + // should be removed because the provider-level property should be able to + // override the gateway-site parameter + filterParams.removeIf(filterParam -> filterParam.name().equals(entry.getKey())); + filterParams.add(createFilterParam(resource, entry.getKey(), entry.getValue())); + }); + + resource.addFilter().name(getName()).role(getRole()).impl(getFilterClassname()).params(filterParams); + } + + private FilterParamDescriptor createFilterParam(ResourceDescriptor resource, String name, String value) { + return resource.createFilterParam().name(name.toLowerCase(Locale.ROOT)).value(value); + } + + private List getParamsFromGatewaySiteWithCentralGroupConfigPrefix(Provider provider, DeploymentContext context, ResourceDescriptor resource) { + final List groupMappingParamsList = new ArrayList<>(); + final Map providerParams = provider.getParams(); + String prefix = providerParams.get(CENTRAL_GROUP_CONFIG_PREFIX_PARAM_NAME); if (prefix != null && !prefix.isEmpty()) { if (!prefix.endsWith(".")) { - prefix += "."; + prefix += "."; } - Map groupMappingParams = - ((Configuration)context.getGatewayConfig()).getPropsWithPrefix(prefix); - if (groupMappingParams != null) { - params = createParamList(resource, params, groupMappingParams); - } - } - if (params == null || params.isEmpty()) { - params = buildFilterInitParms(provider, resource, params); + final GatewayConfig gatewayConfig = context.getGatewayConfig(); + final Map groupMappingParams = gatewayConfig == null ? null : ((Configuration) gatewayConfig).getPropsWithPrefix(prefix); + if (groupMappingParams != null && !groupMappingParams.isEmpty()) { + LOG.groupMappingFound(); + for (Entry entry : groupMappingParams.entrySet()) { + groupMappingParamsList.add(createFilterParam(resource, entry.getKey(), entry.getValue())); + } + } } - resource.addFilter().name(getName()).role(getRole()).impl(getFilterClassname()).params(params); + return groupMappingParamsList; } @Override - public List buildFilterInitParms(Provider provider, - ResourceDescriptor resource, List params) { - // blindly add all the provider params as filter init params - if (params == null) { - params = new ArrayList<>(); - } - Map providerParams = provider.getParams(); - return createParamList(resource, params, providerParams); - } - - private List createParamList(ResourceDescriptor resource, List params, - Map providerParams) { - if (params == null) { - params = new ArrayList<>(); - } - for(Entry entry : providerParams.entrySet()) { - params.add( resource.createFilterParam().name(entry.getKey().toLowerCase(Locale.ROOT)).value(entry.getValue())); - } - return params; + public List buildFilterInitParms(Provider provider, ResourceDescriptor resource, List params) { + final List filterInitParams = params == null ? new ArrayList<>() : new ArrayList<>(params); + // blindly add all the provider params as filter init params + provider.getParams().forEach((paramName, paramValue) -> { + filterInitParams.add(createFilterParam(resource, paramName, paramValue)); + }); + return filterInitParams; } } diff --git a/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderMessages.java b/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderMessages.java index db6246b32c..c014c94249 100644 --- a/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderMessages.java +++ b/gateway-provider-identity-assertion-hadoop-groups/src/main/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderMessages.java @@ -38,4 +38,7 @@ public interface HadoopGroupProviderMessages { @Message( level = MessageLevel.DEBUG, text = "Found groups for principal {0} : {1}" ) void groupsFound(String principal, String groups ); + + @Message( level = MessageLevel.DEBUG, text = "Found group mapping configuration in gateway-site" ) + void groupMappingFound(); } diff --git a/gateway-provider-identity-assertion-hadoop-groups/src/test/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributorTest.java b/gateway-provider-identity-assertion-hadoop-groups/src/test/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributorTest.java index 66675de3cc..408ba911c7 100644 --- a/gateway-provider-identity-assertion-hadoop-groups/src/test/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributorTest.java +++ b/gateway-provider-identity-assertion-hadoop-groups/src/test/java/org/apache/knox/gateway/identityasserter/hadoop/groups/filter/HadoopGroupProviderDeploymentContributorTest.java @@ -18,24 +18,39 @@ package org.apache.knox.gateway.identityasserter.hadoop.groups.filter; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import java.util.Collection; +import java.util.HashMap; import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; import java.util.ServiceLoader; +import java.util.stream.Collectors; +import org.apache.knox.gateway.GatewayTestConfig; +import org.apache.knox.gateway.config.GatewayConfig; +import org.apache.knox.gateway.deploy.DeploymentContext; import org.apache.knox.gateway.deploy.ProviderDeploymentContributor; +import org.apache.knox.gateway.descriptor.FilterParamDescriptor; +import org.apache.knox.gateway.descriptor.ResourceDescriptor; +import org.apache.knox.gateway.descriptor.impl.ResourceDescriptorImpl; +import org.apache.knox.gateway.topology.Provider; +import org.easymock.EasyMock; import org.junit.Test; /** * Test for {@link HadoopGroupProviderDeploymentContributor} + * * @since 0.11 */ public class HadoopGroupProviderDeploymentContributorTest { @Test public void testServiceLoader() throws Exception { - ServiceLoader loader = ServiceLoader - .load(ProviderDeploymentContributor.class); + ServiceLoader loader = ServiceLoader.load(ProviderDeploymentContributor.class); Iterator iterator = loader.iterator(); assertThat("Service iterator empty.", iterator.hasNext()); @@ -45,9 +60,73 @@ public void testServiceLoader() throws Exception { return; } } - fail("Failed to find " - + HadoopGroupProviderDeploymentContributor.class.getName() - + " via service loader."); + fail("Failed to find " + HadoopGroupProviderDeploymentContributor.class.getName() + " via service loader."); + } + + @Test + public void testFilterParametersGenerationOnlyGatewaySiteCentralGroupPrefix() throws Exception { + testilterParametersGeneration(true, false); + } + + @Test + public void testilterParametersGenerationOnlyCustomProviderParameter() throws Exception { + testilterParametersGeneration(false, true); + } + + @Test + public void testilterParametersGenerationBothGatewaySiteCentralGroupPrefixAndCustomProviderParameter() throws Exception { + testilterParametersGeneration(true, true); + } + + private void testilterParametersGeneration(boolean addCentralGroupPrefixParamIntoGatewaySite, boolean haveCustomProviderParameter) throws Exception { + final String centralGroupPrefixParam = "gateway.group.config."; + + final DeploymentContext context = EasyMock.createNiceMock(DeploymentContext.class); + final Properties gatewaySiteProperties = new Properties(); + if (addCentralGroupPrefixParamIntoGatewaySite) { + gatewaySiteProperties.put(centralGroupPrefixParam + "gateway.site.property", "gateway.site.property.value"); + } + final GatewayConfig gatewayConfig = new GatewayTestConfig(gatewaySiteProperties); + EasyMock.expect(context.getGatewayConfig()).andReturn(gatewayConfig).anyTimes(); + + final Provider provider = EasyMock.createNiceMock(Provider.class); + final Map providerParams = new HashMap<>(); + providerParams.put(HadoopGroupProviderDeploymentContributor.CENTRAL_GROUP_CONFIG_PREFIX_PARAM_NAME, centralGroupPrefixParam); + if (haveCustomProviderParameter) { + providerParams.put("other.provider.param", "other.provider.param.value"); + + if (addCentralGroupPrefixParamIntoGatewaySite) { + //provider-level property should override the gateway-level property + providerParams.put("gateway.site.property", "custom.gateway.site.property.value"); + } + } + EasyMock.expect(provider.getParams()).andReturn(providerParams).anyTimes(); + + final ResourceDescriptor resource = new ResourceDescriptorImpl(null); + + EasyMock.replay(context, provider); + + final HadoopGroupProviderDeploymentContributor deploymentContributor = new HadoopGroupProviderDeploymentContributor(); + deploymentContributor.contributeFilter(context, provider, null, resource, null); + assertEquals(1, resource.filters().size()); + final int expectedParameterNum = addCentralGroupPrefixParamIntoGatewaySite && haveCustomProviderParameter ? 2 : 1; + assertEquals(expectedParameterNum, resource.filters().get(0).params().size()); + + final List filterParams = resource.filters().get(0).params(); + if (addCentralGroupPrefixParamIntoGatewaySite) { + final String expectedPropertyValue = haveCustomProviderParameter ? "custom.gateway.site.property.value" : "gateway.site.property.value"; + assertEquals(expectedPropertyValue, getFilterParam(filterParams, "gateway.site.property").value()); + } + + if (haveCustomProviderParameter) { + assertEquals("other.provider.param.value", getFilterParam(filterParams, "other.provider.param").value()); + } + } + + private FilterParamDescriptor getFilterParam(List params, String name) { + final Collection relevantFilterParams = params.stream().filter(param -> param.name().equals(name)).collect(Collectors.toList()); + assertEquals(1, relevantFilterParams.size()); + return relevantFilterParams.iterator().next(); } } diff --git a/gateway-provider-security-hadoopauth/pom.xml b/gateway-provider-security-hadoopauth/pom.xml index 45855e359e..65ab63a245 100755 --- a/gateway-provider-security-hadoopauth/pom.xml +++ b/gateway-provider-security-hadoopauth/pom.xml @@ -45,6 +45,10 @@ org.apache.knox gateway-spi + + org.apache.knox + gateway-spi-common + org.apache.knox gateway-util-common diff --git a/gateway-server/pom.xml b/gateway-server/pom.xml index c6151ceddc..c0a3246313 100644 --- a/gateway-server/pom.xml +++ b/gateway-server/pom.xml @@ -97,6 +97,10 @@ org.apache.knox gateway-spi + + org.apache.knox + gateway-spi-common + org.apache.knox gateway-topology-simple diff --git a/gateway-spi-common/pom.xml b/gateway-spi-common/pom.xml new file mode 100644 index 0000000000..28731da72b --- /dev/null +++ b/gateway-spi-common/pom.xml @@ -0,0 +1,64 @@ + + + + 4.0.0 + + org.apache.knox + gateway + 2.0.0-SNAPSHOT + + + gateway-spi-common + gateway-spi-common + + + + org.apache.knox + gateway-spi + + + org.apache.hadoop + hadoop-annotations + + + org.apache.hadoop + hadoop-common + + + javax.activation + javax.activation-api + + + dnsjava + dnsjava + + + + + org.apache.commons + commons-lang3 + + + javax.servlet + javax.servlet-api + + + + diff --git a/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java similarity index 98% rename from gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java index d99ae5aff6..ec7367fce7 100644 --- a/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java +++ b/gateway-spi-common/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java @@ -20,7 +20,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.knox.gateway.config.GatewayConfig; -import org.apache.knox.gateway.config.impl.GatewayConfigImpl; import java.net.InetSocketAddress; import java.net.UnknownHostException; @@ -33,6 +32,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -74,6 +74,10 @@ public class GatewayTestConfig extends Configuration implements GatewayConfig { private int backupVersionLimit = -1; private long backupAgeLimit = -1; + public GatewayTestConfig(Properties props) { + super.getProps().putAll(props); + } + public GatewayTestConfig() { Iterable paths = FileSystems.getDefault().getRootDirectories(); @@ -276,14 +280,14 @@ public void setFrontendUrl( String frontendUrl ) { } @Override - public List getExcludedSSLProtocols() { + public List getExcludedSSLProtocols() { List protocols = new ArrayList<>(); protocols.add("SSLv3"); return protocols; } @Override - public List getIncludedSSLCiphers() { + public List getIncludedSSLCiphers() { return includedSSLCiphers; } @@ -292,7 +296,7 @@ public void setIncludedSSLCiphers( List list ) { } @Override - public List getExcludedSSLCiphers() { + public List getExcludedSSLCiphers() { return excludedSSLCiphers; } @@ -720,7 +724,7 @@ public boolean allowUnauthenticatedRemoteRegistryReadAccess() { public List getReadOnlyOverrideTopologyNames() { List readOnly = new ArrayList<>(); - String value = get(GatewayConfigImpl.READ_ONLY_OVERRIDE_TOPOLOGIES); + String value = get("gateway.read.only.override.topologies"); if (value != null && !value.isEmpty()) { readOnly.addAll(Arrays.asList(value.trim().split("\\s*,\\s*"))); } diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterDescriptorImpl.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterDescriptorImpl.java similarity index 100% rename from gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterDescriptorImpl.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterDescriptorImpl.java diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterParamDescriptorImpl.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterParamDescriptorImpl.java similarity index 100% rename from gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterParamDescriptorImpl.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/FilterParamDescriptorImpl.java diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayDescriptorImpl.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayDescriptorImpl.java similarity index 100% rename from gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayDescriptorImpl.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayDescriptorImpl.java diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayParamDescriptorImpl.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayParamDescriptorImpl.java similarity index 100% rename from gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayParamDescriptorImpl.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/GatewayParamDescriptorImpl.java diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java similarity index 98% rename from gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java index 4e9fad90bb..eabcea5981 100644 --- a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java +++ b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceDescriptorImpl.java @@ -34,7 +34,7 @@ public class ResourceDescriptorImpl implements ResourceDescriptor { private List params; private List filters; - ResourceDescriptorImpl( GatewayDescriptor parent ) { + public ResourceDescriptorImpl( GatewayDescriptor parent ) { this.parent = parent; this.params = new ArrayList<>(); this.filters = new ArrayList<>(); diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceParamDescriptorImpl.java b/gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceParamDescriptorImpl.java similarity index 100% rename from gateway-server/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceParamDescriptorImpl.java rename to gateway-spi-common/src/main/java/org/apache/knox/gateway/descriptor/impl/ResourceParamDescriptorImpl.java diff --git a/gateway-test-release-utils/pom.xml b/gateway-test-release-utils/pom.xml index f85bbb86ff..df589494f5 100644 --- a/gateway-test-release-utils/pom.xml +++ b/gateway-test-release-utils/pom.xml @@ -42,6 +42,10 @@ org.apache.knox gateway-spi + + org.apache.knox + gateway-spi-common + org.apache.knox gateway-release diff --git a/gateway-test-release/webhdfs-kerb-test/pom.xml b/gateway-test-release/webhdfs-kerb-test/pom.xml index 0248992b62..e41488907c 100644 --- a/gateway-test-release/webhdfs-kerb-test/pom.xml +++ b/gateway-test-release/webhdfs-kerb-test/pom.xml @@ -93,6 +93,11 @@ groovy test + + org.apache.knox + gateway-spi-common + test + diff --git a/gateway-test-release/webhdfs-test/pom.xml b/gateway-test-release/webhdfs-test/pom.xml index f055d2e1fe..766d92f505 100644 --- a/gateway-test-release/webhdfs-test/pom.xml +++ b/gateway-test-release/webhdfs-test/pom.xml @@ -84,6 +84,12 @@ groovy test + + + org.apache.knox + gateway-spi-common + test + diff --git a/gateway-test/pom.xml b/gateway-test/pom.xml index e4145975d6..b2c0b323f7 100644 --- a/gateway-test/pom.xml +++ b/gateway-test/pom.xml @@ -100,6 +100,11 @@ gateway-spi test + + org.apache.knox + gateway-spi-common + test + org.apache.knox gateway-topology-simple diff --git a/pom.xml b/pom.xml index 15f75cfc68..dfb842423d 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,7 @@ gateway-i18n-logging-log4j gateway-i18n-logging-sl4j gateway-spi + gateway-spi-common gateway-discovery-ambari gateway-discovery-cm gateway-performance-test @@ -899,6 +900,11 @@ gateway-spi ${project.version} + + org.apache.knox + gateway-spi-common + ${project.version} + org.apache.knox gateway-provider-security-jwt