You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by mo...@apache.org on 2017/09/01 13:17:29 UTC
[31/64] [partial] knox git commit: KNOX-998 - Refactoring save 1
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryDeploymentContributorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryDeploymentContributorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryDeploymentContributorTest.java
deleted file mode 100644
index f56c398..0000000
--- a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryDeploymentContributorTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.securequery;
-
-import org.apache.hadoop.gateway.config.GatewayConfig;
-import org.apache.hadoop.gateway.deploy.DeploymentContext;
-import org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteEnvironment;
-import org.apache.hadoop.gateway.services.GatewayServices;
-import org.apache.hadoop.gateway.services.ServiceLifecycleException;
-import org.apache.hadoop.gateway.services.security.AliasService;
-import org.apache.hadoop.gateway.services.security.CryptoService;
-import org.apache.hadoop.gateway.services.security.impl.DefaultCryptoService;
-import org.apache.hadoop.gateway.topology.Provider;
-import org.apache.hadoop.gateway.topology.Topology;
-import org.easymock.EasyMock;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-public class SecureQueryDeploymentContributorTest {
-
- @Test
- public void testDeployment() throws IOException {
- WebArchive webArchive = ShrinkWrap.create( WebArchive.class, "test-acrhive" );
-
-// UrlRewriteRulesDescriptorImpl rewriteRules = new UrlRewriteRulesDescriptorImpl();
-
- Map<String,String> providerParams = new HashMap<>();
-// providerParams.put( "test-host-external", "test-host-internal" );
- Provider provider = new Provider();
- provider.setEnabled( true );
- provider.setName( "secure-query" );
- provider.setParams( providerParams );
-
- Topology topology = new Topology();
- topology.setName("Sample");
-
- DeploymentContext context = EasyMock.createNiceMock( DeploymentContext.class );
-// EasyMock.expect( context.getDescriptor( "rewrite" ) ).andReturn( rewriteRules ).anyTimes();
- EasyMock.expect( context.getWebArchive() ).andReturn( webArchive ).anyTimes();
- EasyMock.expect( context.getTopology() ).andReturn( topology ).anyTimes();
- EasyMock.replay( context );
-
- AliasService as = EasyMock.createNiceMock( AliasService.class );
- CryptoService cryptoService = new DefaultCryptoService();
- ((DefaultCryptoService)cryptoService).setAliasService(as);
-
- GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
- EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService ).anyTimes();
-
- UrlRewriteEnvironment encEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
- EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
-
- SecureQueryDeploymentContributor contributor = new SecureQueryDeploymentContributor();
- contributor.setAliasService(as);
-
- assertThat( contributor.getRole(), is( "secure-query" ) );
- assertThat( contributor.getName(), is( "default" ) );
-
- // Just make sure it doesn't blow up.
- contributor.contributeFilter( null, null, null, null, null );
-
- // Just make sure it doesn't blow up.
- contributor.initializeContribution( context );
-
- contributor.contributeProvider( context, provider );
-
-// HostmapFunctionDescriptor funcDesc = rewriteRules.getFunction( "hostmap" );
-// assertThat( funcDesc.config(), is( "/WEB-INF/hostmap.txt" ) );
-//
-// Node node = webArchive.get( "/WEB-INF/hostmap.txt" );
-// String asset = IOUtils.toString( node.getAsset().openStream() );
-// assertThat( asset, containsString( "test-host-external=test-host-internal" ) );
-
- // Just make sure it doesn't blow up.
- contributor.finalizeContribution( context );
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeDescriptorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeDescriptorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeDescriptorTest.java
deleted file mode 100644
index bdf1ad0..0000000
--- a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeDescriptorTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.securequery;
-
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-public class SecureQueryEncodeDescriptorTest {
-
- @Test
- public void testGetAndSet() {
- SecureQueryEncodeDescriptor descriptor = new SecureQueryEncodeDescriptor();
- assertThat( descriptor.type(), is( "encode-query" ) );
- assertThat( descriptor.getParam(), nullValue() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeProcessorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeProcessorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeProcessorTest.java
deleted file mode 100644
index 0b72e91..0000000
--- a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncodeProcessorTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.securequery;
-
-import java.util.Arrays;
-
-import org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteEnvironment;
-import org.apache.hadoop.gateway.filter.rewrite.spi.UrlRewriteContext;
-import org.apache.hadoop.gateway.services.GatewayServices;
-import org.apache.hadoop.gateway.services.security.AliasService;
-import org.apache.hadoop.gateway.services.security.CryptoService;
-import org.apache.hadoop.gateway.services.security.impl.DefaultCryptoService;
-import org.apache.hadoop.gateway.util.urltemplate.Parser;
-import org.apache.hadoop.gateway.util.urltemplate.Template;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.junit.Test;
-import sun.misc.BASE64Encoder;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-public class SecureQueryEncodeProcessorTest {
-
- @Test
- public void testSimpleQueryEncoding() throws Exception {
- AliasService as = EasyMock.createNiceMock( AliasService.class );
- String secret = "sdkjfhsdkjfhsdfs";
- EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
- CryptoService cryptoService = new DefaultCryptoService();
- ((DefaultCryptoService)cryptoService).setAliasService(as);
- GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
- EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
-
- UrlRewriteEnvironment environment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
- EasyMock.expect( environment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
- EasyMock.expect( environment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( Arrays.asList( "test-cluster-name" ) ).anyTimes();
-
- Template inTemplate = Parser.parseLiteral( "http://host:0/root/path?query" );
- UrlRewriteContext context = EasyMock.createNiceMock( UrlRewriteContext.class );
- EasyMock.expect( context.getCurrentUrl() ).andReturn( inTemplate );
- Capture<Template> outTemplate = new Capture<Template>();
- context.setCurrentUrl( EasyMock.capture( outTemplate ) );
-
- EasyMock.replay( environment, context );
-
- SecureQueryEncodeDescriptor descriptor = new SecureQueryEncodeDescriptor();
- SecureQueryEncodeProcessor processor = new SecureQueryEncodeProcessor();
- processor.initialize( environment, descriptor );
- processor.process( context );
-
- BASE64Encoder encoder = new BASE64Encoder();
- String encQuery = encoder.encode( "query".getBytes("utf-8" ) );
- encQuery = encQuery.replaceAll( "\\=", "" );
- String outExpect = "http://host:0/root/path?_=" + encQuery;
- String outActual = outTemplate.getValue().toString();
- assertThat( outActual, is( outExpect ) );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java
deleted file mode 100644
index 453aeb9..0000000
--- a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/hadoop/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.securequery;
-
-import org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteEnvironment;
-import org.apache.hadoop.gateway.filter.rewrite.spi.UrlRewriteContext;
-import org.apache.hadoop.gateway.services.GatewayServices;
-import org.apache.hadoop.gateway.services.security.AliasService;
-import org.apache.hadoop.gateway.services.security.CryptoService;
-import org.apache.hadoop.gateway.services.security.impl.DefaultCryptoService;
-import org.apache.hadoop.gateway.util.urltemplate.Params;
-import org.apache.hadoop.gateway.util.urltemplate.Parser;
-import org.apache.hadoop.gateway.util.urltemplate.Query;
-import org.apache.hadoop.gateway.util.urltemplate.Template;
-import org.apache.hadoop.gateway.filter.rewrite.spi.UrlRewriteStepStatus;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.junit.Test;
-import org.junit.Assert;
-
-import java.util.Arrays;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.greaterThan;
-import static org.hamcrest.Matchers.nullValue;
-
-public class SecureQueryEncryptDecryptProcessorTest {
-
- @Test
- public void testEncryptDecrypt() throws Exception {
- Query query;
- Template origTemplate = Parser.parseLiteral( "http://host:0/path/file?query-param-name=query-param-value" );
-
- // Test encryption. Results are left in encTemplate
-
- AliasService as = EasyMock.createNiceMock( AliasService.class );
- String secret = "sdkjfhsdkjfhsdfs";
- EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
- CryptoService cryptoService = new DefaultCryptoService();
- ((DefaultCryptoService)cryptoService).setAliasService(as);
- GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
- EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
-
- UrlRewriteEnvironment encEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
- EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
- EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
- UrlRewriteContext encContext = EasyMock.createNiceMock( UrlRewriteContext.class );
- EasyMock.expect( encContext.getCurrentUrl() ).andReturn( origTemplate );
- Capture<Template> encTemplate = new Capture<Template>();
- encContext.setCurrentUrl( EasyMock.capture( encTemplate ) );
- EasyMock.replay( gatewayServices, as, encEnvironment, encContext );
-
- SecureQueryEncryptDescriptor descriptor = new SecureQueryEncryptDescriptor();
- SecureQueryEncryptProcessor processor = new SecureQueryEncryptProcessor();
- processor.initialize( encEnvironment, descriptor );
- processor.process( encContext );
-
- assertThat( encTemplate, notNullValue() );
- query = encTemplate.getValue().getQuery().get( "_" );
- assertThat( query.getFirstValue().getPattern().length(), greaterThan( 1 ) );
- query = encTemplate.getValue().getQuery().get( "query-param-name" );
- assertThat( query, nullValue() );
-
- // Test decryption. Results are left in decTemplate.
-
- gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
- EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
- as = EasyMock.createNiceMock( AliasService.class );
- EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
-
- UrlRewriteEnvironment decEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
- EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
- EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
- Params decParams = EasyMock.createNiceMock( Params.class );
- EasyMock.expect( decParams.resolve( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( Arrays.asList("test-cluster-name") ).anyTimes();
- UrlRewriteContext decContext = EasyMock.createNiceMock( UrlRewriteContext.class );
- EasyMock.expect( decContext.getCurrentUrl() ).andReturn( encTemplate.getValue() );
- EasyMock.expect( decContext.getParameters() ).andReturn( decParams );
- Capture<Template> decTemplate = new Capture<Template>();
- decContext.setCurrentUrl( EasyMock.capture( decTemplate ) );
- EasyMock.replay( gatewayServices, as, decEnvironment, decParams, decContext );
-
- SecureQueryDecryptDescriptor descriptor1 = new SecureQueryDecryptDescriptor();
- SecureQueryDecryptProcessor decProcessor = new SecureQueryDecryptProcessor();
- decProcessor.initialize( decEnvironment, descriptor1 );
- decProcessor.process( decContext );
-
- assertThat( decTemplate, notNullValue() );
- assertThat( decTemplate.getValue(), notNullValue() );
- query = decTemplate.getValue().getQuery().get( "query-param-name" );
- assertThat( query.getFirstValue().getPattern(), is( "query-param-value" ) );
- query = decTemplate.getValue().getQuery().get( "_" );
- assertThat( query, nullValue() );
- }
-
- @Test
- public void testEncryptBadDecrypt() throws Exception {
- Query query;
- Template origTemplate = Parser.parseLiteral( "http://host:0/path/file?query-param-name=query-param-value" );
-
- // Test encryption. Results are left in encTemplate
-
- AliasService as = EasyMock.createNiceMock( AliasService.class );
- String secret = "sdkjfhsdkjfhsdfs";
- EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
- CryptoService cryptoService = new DefaultCryptoService();
- ((DefaultCryptoService)cryptoService).setAliasService(as);
- GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
- EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
-
- UrlRewriteEnvironment encEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
- EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
- EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
- UrlRewriteContext encContext = EasyMock.createNiceMock( UrlRewriteContext.class );
- EasyMock.expect( encContext.getCurrentUrl() ).andReturn( origTemplate );
- Capture<Template> encTemplate = new Capture<Template>();
- encContext.setCurrentUrl( EasyMock.capture( encTemplate ) );
- EasyMock.replay( gatewayServices, as, encEnvironment, encContext );
-
- SecureQueryEncryptDescriptor descriptor = new SecureQueryEncryptDescriptor();
- SecureQueryEncryptProcessor processor = new SecureQueryEncryptProcessor();
- processor.initialize( encEnvironment, descriptor );
- processor.process( encContext );
-
- assertThat( encTemplate, notNullValue() );
- query = encTemplate.getValue().getQuery().get( "_" );
- assertThat( query.getFirstValue().getPattern().length(), greaterThan( 1 ) );
- query = encTemplate.getValue().getQuery().get( "query-param-name" );
- assertThat( query, nullValue() );
-
- // Test decryption with decode returning null
-
- gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
- EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
- as = EasyMock.createNiceMock( AliasService.class );
- EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
-
- UrlRewriteEnvironment decEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
- EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
- EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
- Params decParams = EasyMock.createNiceMock( Params.class );
- EasyMock.expect( decParams.resolve( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( Arrays.asList("test-cluster-name") ).anyTimes();
- UrlRewriteContext decContext = EasyMock.createNiceMock( UrlRewriteContext.class );
- EasyMock.expect( decContext.getCurrentUrl() ).andReturn( encTemplate.getValue() );
- EasyMock.expect( decContext.getParameters() ).andReturn( decParams );
- Capture<Template> decTemplate = new Capture<Template>();
- decContext.setCurrentUrl( EasyMock.capture( decTemplate ) );
- SecureQueryDecryptDescriptor descriptor1 = new SecureQueryDecryptDescriptor();
- SecureQueryDecryptProcessor decProcessor =
- EasyMock.createMockBuilder(
- SecureQueryDecryptProcessor.class ).addMockedMethod( SecureQueryDecryptProcessor.class.getDeclaredMethod("decode", String.class )).createMock();
- EasyMock.expect( decProcessor.decode(EasyMock.anyObject(String.class))).andReturn( null );
- EasyMock.replay( gatewayServices, as, decEnvironment, decParams, decContext, decProcessor );
-
- decProcessor.initialize( decEnvironment, descriptor1 );
- UrlRewriteStepStatus status = decProcessor.process( decContext );
-
- Assert.assertTrue((status == UrlRewriteStepStatus.FAILURE));
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeDescriptorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeDescriptorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeDescriptorTest.java
new file mode 100644
index 0000000..7747698
--- /dev/null
+++ b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeDescriptorTest.java
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.knox.gateway.securequery;
+
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class SecureQueryDecodeDescriptorTest {
+
+ @Test
+ public void testGetAndSet() {
+ SecureQueryDecodeDescriptor descriptor = new SecureQueryDecodeDescriptor();
+ assertThat( descriptor.type(), is( "decode-query" ) );
+ assertThat( descriptor.getParam(), nullValue() );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeProcessorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeProcessorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeProcessorTest.java
new file mode 100644
index 0000000..4ef447f
--- /dev/null
+++ b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDecodeProcessorTest.java
@@ -0,0 +1,125 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.knox.gateway.securequery;
+
+import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteEnvironment;
+import org.apache.knox.gateway.filter.rewrite.spi.UrlRewriteContext;
+import org.apache.knox.gateway.util.urltemplate.Parser;
+import org.apache.knox.gateway.util.urltemplate.Template;
+import org.easymock.Capture;
+import org.easymock.EasyMock;
+import org.junit.Test;
+import sun.misc.BASE64Encoder;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class SecureQueryDecodeProcessorTest {
+
+ @Test
+ public void testSimpleQueryDecode() throws Exception {
+ UrlRewriteEnvironment environment = new UrlRewriteEnvironment() {
+ @Override
+ public URL getResource( String name ) throws IOException {
+ return null;
+ }
+
+ @Override
+ public <T> T getAttribute( String name ) {
+ return null;
+ }
+
+ @Override
+ public List<String> resolve( String name ) {
+ return null;
+ }
+ };
+
+ BASE64Encoder encoder = new BASE64Encoder();
+ String encQuery = encoder.encode( "test-query".getBytes("utf-8" ) );
+ encQuery = encQuery.replaceAll( "\\=", "" );
+ String inString = "http://host:0/root/path?_=" + encQuery;
+ Template inTemplate = Parser.parseLiteral( inString );
+
+ UrlRewriteContext context = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( context.getCurrentUrl() ).andReturn( inTemplate );
+ Capture<Template> outTemplate = new Capture<Template>();
+ context.setCurrentUrl( EasyMock.capture( outTemplate ) );
+ EasyMock.replay( context );
+
+ SecureQueryDecodeDescriptor descriptor = new SecureQueryDecodeDescriptor();
+ SecureQueryDecodeProcessor processor = new SecureQueryDecodeProcessor();
+ processor.initialize( environment, descriptor );
+ processor.process( context );
+
+ String outActual = outTemplate.getValue().toString();
+ assertThat( outActual, is( "http://host:0/root/path?test-query" ) );
+ }
+
+ @Test
+ public void testDecodeQueryWithNonEncodedParams() throws Exception {
+ UrlRewriteEnvironment environment = new UrlRewriteEnvironment() {
+ @Override
+ public URL getResource( String name ) throws IOException {
+ return null;
+ }
+
+ @Override
+ public <T> T getAttribute( String name ) {
+ return null;
+ }
+
+ @Override
+ public List<String> resolve( String name ) {
+ return null;
+ }
+ };
+
+ BASE64Encoder encoder = new BASE64Encoder();
+ String inQuery = "test-query=test-value";
+ String encQuery = encoder.encode( inQuery.getBytes( "utf-8" ) );
+ encQuery = encQuery.replaceAll( "\\=", "" );
+ String inString = "http://host:0/root/path?_=" + encQuery + "&clear-param=clear-value";
+ Template inTemplate = Parser.parseLiteral( inString );
+
+ UrlRewriteContext context = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( context.getCurrentUrl() ).andReturn( inTemplate );
+ Capture<Template> outTemplate = new Capture<Template>();
+ context.setCurrentUrl( EasyMock.capture( outTemplate ) );
+ EasyMock.replay( context );
+
+ SecureQueryDecodeDescriptor descriptor = new SecureQueryDecodeDescriptor();
+ SecureQueryDecodeProcessor processor = new SecureQueryDecodeProcessor();
+ processor.initialize( environment, descriptor );
+ processor.process( context );
+
+ String outActual = outTemplate.getValue().toString();
+ assertThat( outActual, containsString( "http://host:0/root/path?" ) );
+ assertThat( outActual, containsString( "test-query=test-value" ) );
+ assertThat( outActual, containsString( "clear-param=clear-value" ) );
+ assertThat( outActual, not( containsString( encQuery ) ) );
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDeploymentContributorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDeploymentContributorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDeploymentContributorTest.java
new file mode 100644
index 0000000..4977ebe
--- /dev/null
+++ b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryDeploymentContributorTest.java
@@ -0,0 +1,100 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.knox.gateway.securequery;
+
+import org.apache.knox.gateway.deploy.DeploymentContext;
+import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteEnvironment;
+import org.apache.knox.gateway.services.GatewayServices;
+import org.apache.knox.gateway.services.security.AliasService;
+import org.apache.knox.gateway.services.security.CryptoService;
+import org.apache.knox.gateway.services.security.impl.DefaultCryptoService;
+import org.apache.knox.gateway.topology.Provider;
+import org.apache.knox.gateway.topology.Topology;
+import org.easymock.EasyMock;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class SecureQueryDeploymentContributorTest {
+
+ @Test
+ public void testDeployment() throws IOException {
+ WebArchive webArchive = ShrinkWrap.create( WebArchive.class, "test-acrhive" );
+
+// UrlRewriteRulesDescriptorImpl rewriteRules = new UrlRewriteRulesDescriptorImpl();
+
+ Map<String,String> providerParams = new HashMap<>();
+// providerParams.put( "test-host-external", "test-host-internal" );
+ Provider provider = new Provider();
+ provider.setEnabled( true );
+ provider.setName( "secure-query" );
+ provider.setParams( providerParams );
+
+ Topology topology = new Topology();
+ topology.setName("Sample");
+
+ DeploymentContext context = EasyMock.createNiceMock( DeploymentContext.class );
+// EasyMock.expect( context.getDescriptor( "rewrite" ) ).andReturn( rewriteRules ).anyTimes();
+ EasyMock.expect( context.getWebArchive() ).andReturn( webArchive ).anyTimes();
+ EasyMock.expect( context.getTopology() ).andReturn( topology ).anyTimes();
+ EasyMock.replay( context );
+
+ AliasService as = EasyMock.createNiceMock( AliasService.class );
+ CryptoService cryptoService = new DefaultCryptoService();
+ ((DefaultCryptoService)cryptoService).setAliasService(as);
+
+ GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
+ EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService ).anyTimes();
+
+ UrlRewriteEnvironment encEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
+ EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
+
+ SecureQueryDeploymentContributor contributor = new SecureQueryDeploymentContributor();
+ contributor.setAliasService(as);
+
+ assertThat( contributor.getRole(), is( "secure-query" ) );
+ assertThat( contributor.getName(), is( "default" ) );
+
+ // Just make sure it doesn't blow up.
+ contributor.contributeFilter( null, null, null, null, null );
+
+ // Just make sure it doesn't blow up.
+ contributor.initializeContribution( context );
+
+ contributor.contributeProvider( context, provider );
+
+// HostmapFunctionDescriptor funcDesc = rewriteRules.getFunction( "hostmap" );
+// assertThat( funcDesc.config(), is( "/WEB-INF/hostmap.txt" ) );
+//
+// Node node = webArchive.get( "/WEB-INF/hostmap.txt" );
+// String asset = IOUtils.toString( node.getAsset().openStream() );
+// assertThat( asset, containsString( "test-host-external=test-host-internal" ) );
+
+ // Just make sure it doesn't blow up.
+ contributor.finalizeContribution( context );
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeDescriptorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeDescriptorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeDescriptorTest.java
new file mode 100644
index 0000000..f6dcf03
--- /dev/null
+++ b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeDescriptorTest.java
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.knox.gateway.securequery;
+
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class SecureQueryEncodeDescriptorTest {
+
+ @Test
+ public void testGetAndSet() {
+ SecureQueryEncodeDescriptor descriptor = new SecureQueryEncodeDescriptor();
+ assertThat( descriptor.type(), is( "encode-query" ) );
+ assertThat( descriptor.getParam(), nullValue() );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeProcessorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeProcessorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeProcessorTest.java
new file mode 100644
index 0000000..24157a1
--- /dev/null
+++ b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncodeProcessorTest.java
@@ -0,0 +1,75 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.knox.gateway.securequery;
+
+import java.util.Arrays;
+
+import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteEnvironment;
+import org.apache.knox.gateway.filter.rewrite.spi.UrlRewriteContext;
+import org.apache.knox.gateway.services.GatewayServices;
+import org.apache.knox.gateway.services.security.AliasService;
+import org.apache.knox.gateway.services.security.CryptoService;
+import org.apache.knox.gateway.services.security.impl.DefaultCryptoService;
+import org.apache.knox.gateway.util.urltemplate.Parser;
+import org.apache.knox.gateway.util.urltemplate.Template;
+import org.easymock.Capture;
+import org.easymock.EasyMock;
+import org.junit.Test;
+import sun.misc.BASE64Encoder;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class SecureQueryEncodeProcessorTest {
+
+ @Test
+ public void testSimpleQueryEncoding() throws Exception {
+ AliasService as = EasyMock.createNiceMock( AliasService.class );
+ String secret = "sdkjfhsdkjfhsdfs";
+ EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
+ CryptoService cryptoService = new DefaultCryptoService();
+ ((DefaultCryptoService)cryptoService).setAliasService(as);
+ GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
+ EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
+
+ UrlRewriteEnvironment environment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
+ EasyMock.expect( environment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
+ EasyMock.expect( environment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( Arrays.asList( "test-cluster-name" ) ).anyTimes();
+
+ Template inTemplate = Parser.parseLiteral( "http://host:0/root/path?query" );
+ UrlRewriteContext context = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( context.getCurrentUrl() ).andReturn( inTemplate );
+ Capture<Template> outTemplate = new Capture<Template>();
+ context.setCurrentUrl( EasyMock.capture( outTemplate ) );
+
+ EasyMock.replay( environment, context );
+
+ SecureQueryEncodeDescriptor descriptor = new SecureQueryEncodeDescriptor();
+ SecureQueryEncodeProcessor processor = new SecureQueryEncodeProcessor();
+ processor.initialize( environment, descriptor );
+ processor.process( context );
+
+ BASE64Encoder encoder = new BASE64Encoder();
+ String encQuery = encoder.encode( "query".getBytes("utf-8" ) );
+ encQuery = encQuery.replaceAll( "\\=", "" );
+ String outExpect = "http://host:0/root/path?_=" + encQuery;
+ String outActual = outTemplate.getValue().toString();
+ assertThat( outActual, is( outExpect ) );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java
new file mode 100644
index 0000000..c0fba80
--- /dev/null
+++ b/gateway-provider-rewrite-step-secure-query/src/test/java/org/apache/knox/gateway/securequery/SecureQueryEncryptDecryptProcessorTest.java
@@ -0,0 +1,179 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.knox.gateway.securequery;
+
+import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteEnvironment;
+import org.apache.knox.gateway.filter.rewrite.spi.UrlRewriteContext;
+import org.apache.knox.gateway.services.GatewayServices;
+import org.apache.knox.gateway.services.security.AliasService;
+import org.apache.knox.gateway.services.security.CryptoService;
+import org.apache.knox.gateway.services.security.impl.DefaultCryptoService;
+import org.apache.knox.gateway.util.urltemplate.Params;
+import org.apache.knox.gateway.util.urltemplate.Parser;
+import org.apache.knox.gateway.util.urltemplate.Query;
+import org.apache.knox.gateway.util.urltemplate.Template;
+import org.apache.knox.gateway.filter.rewrite.spi.UrlRewriteStepStatus;
+import org.easymock.Capture;
+import org.easymock.EasyMock;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.util.Arrays;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.nullValue;
+
+public class SecureQueryEncryptDecryptProcessorTest {
+
+ @Test
+ public void testEncryptDecrypt() throws Exception {
+ Query query;
+ Template origTemplate = Parser.parseLiteral( "http://host:0/path/file?query-param-name=query-param-value" );
+
+ // Test encryption. Results are left in encTemplate
+
+ AliasService as = EasyMock.createNiceMock( AliasService.class );
+ String secret = "sdkjfhsdkjfhsdfs";
+ EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
+ CryptoService cryptoService = new DefaultCryptoService();
+ ((DefaultCryptoService)cryptoService).setAliasService(as);
+ GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
+ EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
+
+ UrlRewriteEnvironment encEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
+ EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
+ EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
+ UrlRewriteContext encContext = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( encContext.getCurrentUrl() ).andReturn( origTemplate );
+ Capture<Template> encTemplate = new Capture<Template>();
+ encContext.setCurrentUrl( EasyMock.capture( encTemplate ) );
+ EasyMock.replay( gatewayServices, as, encEnvironment, encContext );
+
+ SecureQueryEncryptDescriptor descriptor = new SecureQueryEncryptDescriptor();
+ SecureQueryEncryptProcessor processor = new SecureQueryEncryptProcessor();
+ processor.initialize( encEnvironment, descriptor );
+ processor.process( encContext );
+
+ assertThat( encTemplate, notNullValue() );
+ query = encTemplate.getValue().getQuery().get( "_" );
+ assertThat( query.getFirstValue().getPattern().length(), greaterThan( 1 ) );
+ query = encTemplate.getValue().getQuery().get( "query-param-name" );
+ assertThat( query, nullValue() );
+
+ // Test decryption. Results are left in decTemplate.
+
+ gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
+ EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
+ as = EasyMock.createNiceMock( AliasService.class );
+ EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
+
+ UrlRewriteEnvironment decEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
+ EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
+ EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
+ Params decParams = EasyMock.createNiceMock( Params.class );
+ EasyMock.expect( decParams.resolve( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( Arrays.asList("test-cluster-name") ).anyTimes();
+ UrlRewriteContext decContext = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( decContext.getCurrentUrl() ).andReturn( encTemplate.getValue() );
+ EasyMock.expect( decContext.getParameters() ).andReturn( decParams );
+ Capture<Template> decTemplate = new Capture<Template>();
+ decContext.setCurrentUrl( EasyMock.capture( decTemplate ) );
+ EasyMock.replay( gatewayServices, as, decEnvironment, decParams, decContext );
+
+ SecureQueryDecryptDescriptor descriptor1 = new SecureQueryDecryptDescriptor();
+ SecureQueryDecryptProcessor decProcessor = new SecureQueryDecryptProcessor();
+ decProcessor.initialize( decEnvironment, descriptor1 );
+ decProcessor.process( decContext );
+
+ assertThat( decTemplate, notNullValue() );
+ assertThat( decTemplate.getValue(), notNullValue() );
+ query = decTemplate.getValue().getQuery().get( "query-param-name" );
+ assertThat( query.getFirstValue().getPattern(), is( "query-param-value" ) );
+ query = decTemplate.getValue().getQuery().get( "_" );
+ assertThat( query, nullValue() );
+ }
+
+ @Test
+ public void testEncryptBadDecrypt() throws Exception {
+ Query query;
+ Template origTemplate = Parser.parseLiteral( "http://host:0/path/file?query-param-name=query-param-value" );
+
+ // Test encryption. Results are left in encTemplate
+
+ AliasService as = EasyMock.createNiceMock( AliasService.class );
+ String secret = "sdkjfhsdkjfhsdfs";
+ EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
+ CryptoService cryptoService = new DefaultCryptoService();
+ ((DefaultCryptoService)cryptoService).setAliasService(as);
+ GatewayServices gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
+ EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
+
+ UrlRewriteEnvironment encEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
+ EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
+ EasyMock.expect( encEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
+ UrlRewriteContext encContext = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( encContext.getCurrentUrl() ).andReturn( origTemplate );
+ Capture<Template> encTemplate = new Capture<Template>();
+ encContext.setCurrentUrl( EasyMock.capture( encTemplate ) );
+ EasyMock.replay( gatewayServices, as, encEnvironment, encContext );
+
+ SecureQueryEncryptDescriptor descriptor = new SecureQueryEncryptDescriptor();
+ SecureQueryEncryptProcessor processor = new SecureQueryEncryptProcessor();
+ processor.initialize( encEnvironment, descriptor );
+ processor.process( encContext );
+
+ assertThat( encTemplate, notNullValue() );
+ query = encTemplate.getValue().getQuery().get( "_" );
+ assertThat( query.getFirstValue().getPattern().length(), greaterThan( 1 ) );
+ query = encTemplate.getValue().getQuery().get( "query-param-name" );
+ assertThat( query, nullValue() );
+
+ // Test decryption with decode returning null
+
+ gatewayServices = EasyMock.createNiceMock( GatewayServices.class );
+ EasyMock.expect( gatewayServices.getService( GatewayServices.CRYPTO_SERVICE ) ).andReturn( cryptoService );
+ as = EasyMock.createNiceMock( AliasService.class );
+ EasyMock.expect( as.getPasswordFromAliasForCluster("test-cluster-name", "encryptQueryString")).andReturn( secret.toCharArray() ).anyTimes();
+
+ UrlRewriteEnvironment decEnvironment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
+ EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_SERVICES_ATTRIBUTE ) ).andReturn( gatewayServices ).anyTimes();
+ EasyMock.expect( decEnvironment.getAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( "test-cluster-name" ).anyTimes();
+ Params decParams = EasyMock.createNiceMock( Params.class );
+ EasyMock.expect( decParams.resolve( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE ) ).andReturn( Arrays.asList("test-cluster-name") ).anyTimes();
+ UrlRewriteContext decContext = EasyMock.createNiceMock( UrlRewriteContext.class );
+ EasyMock.expect( decContext.getCurrentUrl() ).andReturn( encTemplate.getValue() );
+ EasyMock.expect( decContext.getParameters() ).andReturn( decParams );
+ Capture<Template> decTemplate = new Capture<Template>();
+ decContext.setCurrentUrl( EasyMock.capture( decTemplate ) );
+ SecureQueryDecryptDescriptor descriptor1 = new SecureQueryDecryptDescriptor();
+ SecureQueryDecryptProcessor decProcessor =
+ EasyMock.createMockBuilder(
+ SecureQueryDecryptProcessor.class ).addMockedMethod( SecureQueryDecryptProcessor.class.getDeclaredMethod("decode", String.class )).createMock();
+ EasyMock.expect( decProcessor.decode(EasyMock.anyObject(String.class))).andReturn( null );
+ EasyMock.replay( gatewayServices, as, decEnvironment, decParams, decContext, decProcessor );
+
+ decProcessor.initialize( decEnvironment, descriptor1 );
+ UrlRewriteStepStatus status = decProcessor.process( decContext );
+
+ Assert.assertTrue((status == UrlRewriteStepStatus.FAILURE));
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/CookieScopeServletFilter.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/CookieScopeServletFilter.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/CookieScopeServletFilter.java
deleted file mode 100644
index 8c9eed0..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/CookieScopeServletFilter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-import java.io.IOException;
-
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.hadoop.gateway.filter.AbstractGatewayFilter;
-import org.apache.hadoop.gateway.filter.rewrite.impl.CookieScopeResponseWrapper;
-
-
-public class CookieScopeServletFilter extends AbstractGatewayFilter {
-
- private String gatewayPath;
-
- @Override
- public void init( FilterConfig filterConfig ) throws ServletException {
- super.init( filterConfig );
- gatewayPath = filterConfig.getInitParameter("gateway.path");
- }
-
- @Override
- protected void doFilter( HttpServletRequest request, HttpServletResponse response, FilterChain chain )
- throws IOException, ServletException {
- chain.doFilter( request, new CookieScopeResponseWrapper(response, gatewayPath));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/FrontendFunctionDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/FrontendFunctionDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/FrontendFunctionDescriptor.java
deleted file mode 100644
index 978ff73..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/FrontendFunctionDescriptor.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public class FrontendFunctionDescriptor implements UrlRewriteFunctionDescriptor<FrontendFunctionDescriptor> {
-
- public static final String FUNCTION_NAME = "frontend";
-
- public static final String FRONTEND_URI_ATTRIBUTE = "org.apache.knox.gateway.frontend.uri";
-
- @Override
- public String name() {
- return FUNCTION_NAME;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteEnvironment.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteEnvironment.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteEnvironment.java
deleted file mode 100644
index 228038d..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteEnvironment.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-import org.apache.hadoop.gateway.util.urltemplate.Resolver;
-
-import java.io.IOException;
-import java.net.URL;
-
-public interface UrlRewriteEnvironment extends Resolver {
-
- URL getResource( String name ) throws IOException;
-
- <T> T getAttribute( String name );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterApplyDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterApplyDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterApplyDescriptor.java
deleted file mode 100644
index c6f66d8..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterApplyDescriptor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFilterApplyDescriptor
- extends UrlRewriteFilterPathDescriptor<UrlRewriteFilterApplyDescriptor> {
-
- String rule();
-
- UrlRewriteFilterApplyDescriptor rule( String rule );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterBufferDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterBufferDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterBufferDescriptor.java
deleted file mode 100644
index 1f12f81..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterBufferDescriptor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFilterBufferDescriptor
- extends UrlRewriteFilterPathDescriptor, UrlRewriteFilterGroupDescriptor {
-
- public UrlRewriteFilterDetectDescriptor addDetect( String path, String value );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterContentDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterContentDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterContentDescriptor.java
deleted file mode 100644
index 73ea970..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterContentDescriptor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFilterContentDescriptor extends UrlRewriteFilterGroupDescriptor {
-
- String type();
-
- String asType();
-
- UrlRewriteFilterContentDescriptor type( String type );
-
- UrlRewriteFilterContentDescriptor asType( String type );
-
- UrlRewriteFilterBufferDescriptor addBuffer( String path );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDescriptor.java
deleted file mode 100644
index 49369fd..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDescriptor.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-import javax.activation.MimeType;
-import java.util.List;
-
-public interface UrlRewriteFilterDescriptor {
-
- String name();
-
- UrlRewriteFilterDescriptor name( String name );
-
- List<UrlRewriteFilterContentDescriptor> getContents();
-
- UrlRewriteFilterContentDescriptor getContent( String type );
-
- UrlRewriteFilterContentDescriptor getContent( MimeType type );
-
- UrlRewriteFilterContentDescriptor addContent( String type );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDetectDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDetectDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDetectDescriptor.java
deleted file mode 100644
index 9fe8eab..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterDetectDescriptor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFilterDetectDescriptor
- extends UrlRewriteFilterPathDescriptor, UrlRewriteFilterGroupDescriptor {
-
- String value();
-
- UrlRewriteFilterDetectDescriptor value( String value );
-
- <C> C compiledValue();
-
- UrlRewriteFilterDetectDescriptor compiledValue( String compiledValue );
-
- <C> C compiledValue( Compiler<C> compiler );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterGroupDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterGroupDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterGroupDescriptor.java
deleted file mode 100644
index de0349f..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterGroupDescriptor.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-import java.util.List;
-
-public interface UrlRewriteFilterGroupDescriptor extends UrlRewriteFilterPathDescriptor {
-
- public List<UrlRewriteFilterPathDescriptor> getSelectors();
-
- public void addSelector( UrlRewriteFilterPathDescriptor selector );
-
- UrlRewriteFilterApplyDescriptor addApply( String path, String rule );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterPathDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterPathDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterPathDescriptor.java
deleted file mode 100644
index 9f4c864..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterPathDescriptor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFilterPathDescriptor<T> {
-
- String path();
-
- T path( String path );
-
- <C> C compiledPath();
-
- T compiledPath( Object compilePath );
-
- <C> C compiledPath( Compiler<C> compiler );
-
- interface Compiler<C> {
- // The returned compiled version of the expression must be thread safe.
- // The compiled param will be the result of the last successful call to this method for this instance of
- // the descriptor node.
- C compile( String expression, C compiled );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterScopeDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterScopeDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterScopeDescriptor.java
deleted file mode 100644
index 62acc97..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFilterScopeDescriptor.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFilterScopeDescriptor
- extends UrlRewriteFilterPathDescriptor, UrlRewriteFilterGroupDescriptor {
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFlowDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFlowDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFlowDescriptor.java
deleted file mode 100644
index aab4f15..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFlowDescriptor.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-import java.util.List;
-
-public interface UrlRewriteFlowDescriptor<T> extends UrlRewriteStepDescriptor<T> {
-
- UrlRewriteStepFlow flow();
-
- <F extends UrlRewriteFlowDescriptor<?>> F flow( String flow );
-
- <F extends UrlRewriteFlowDescriptor<?>> F flow( UrlRewriteStepFlow flow );
-
- List<UrlRewriteStepDescriptor> steps();
-
-// UrlRewriteMatchDescriptor addMatch();
-//
-// UrlRewriteCheckDescriptor addCheck();
-//
-// UrlRewriteActionDescriptor addAction();
-//
-// UrlRewriteControlDescriptor addControl();
-
- <T extends UrlRewriteStepDescriptor<?>> T addStep( String type );
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptor.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptor.java
deleted file mode 100644
index bc491dd..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptor.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-public interface UrlRewriteFunctionDescriptor<T> {
-
- String name();
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/af9b0c3d/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptorFactory.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptorFactory.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptorFactory.java
deleted file mode 100644
index 5d72695..0000000
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteFunctionDescriptorFactory.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.gateway.filter.rewrite.api;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.ServiceLoader;
-import java.util.Set;
-
-public abstract class UrlRewriteFunctionDescriptorFactory {
-
- private static Map<String,Class<? extends UrlRewriteFunctionDescriptor>> MAP
- = (Map<String, Class<? extends UrlRewriteFunctionDescriptor>>)loadDescriptors();
-
- private UrlRewriteFunctionDescriptorFactory() {
- }
-
- @SuppressWarnings("unchecked")
- public static <T extends UrlRewriteFunctionDescriptor<?>> T create( String name ) {
- try {
- Class<? extends UrlRewriteFunctionDescriptor> descriptorClass = MAP.get( name );
- return (T)descriptorClass.newInstance();
- } catch( InstantiationException e ) {
- throw new IllegalArgumentException( name );
- } catch( IllegalAccessException e ) {
- throw new IllegalArgumentException( name );
- }
- }
-
- private static Map<String,Class<? extends UrlRewriteFunctionDescriptor>> loadDescriptors() {
- Map<String,Class<? extends UrlRewriteFunctionDescriptor>> map
- = new HashMap<>();
- ServiceLoader<? extends UrlRewriteFunctionDescriptor> descriptors
- = ServiceLoader.load( UrlRewriteFunctionDescriptor.class );
- for( UrlRewriteFunctionDescriptor descriptor : descriptors ) {
- String functionName = descriptor.name();
- Class<? extends UrlRewriteFunctionDescriptor> descriptorClass = descriptor.getClass() ;
- map.put( functionName, descriptorClass );
- }
- return map;
- }
-
- public static Set<String> getNames() {
- return MAP.keySet();
- }
-}