use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor in project knox by apache.
the class JsonFilterReaderTest method testUnscopedStreaming.
@Test
public void testUnscopedStreaming() throws IOException {
InputStream stream = TestUtils.getResourceStream(this.getClass(), "simple-values.json");
String input = IOUtils.toString(stream, Charset.forName("UTF-8"));
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter=1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("text/json");
UrlRewriteFilterApplyDescriptor applyConfig = contentConfig.addApply("$['test-str']", "test-rule");
JsonFilterReader filter = new TestJsonFilterReader(new StringReader(input), contentConfig);
String output = IOUtils.toString(filter);
// System.out.println( "OUTPUT=" + output );
JsonAssert.with(output).assertThat("name<test-str>", is("value:null<text>"));
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor in project knox by apache.
the class JsonFilterReaderTest method testInvalidConfigShouldThrowException.
@Test
public void testInvalidConfigShouldThrowException() throws Exception {
String input = "{\"test-name\":\"test-value\"}";
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("*/json");
contentConfig.addApply("/root/@url", "test-rule");
try {
JsonFilterReader filter = new TestJsonFilterReader(new StringReader(input), contentConfig);
IOUtils.toString(filter);
fail("Should have thrown an IllegalArgumentException.");
} catch (IOException e) {
fail("Should have thrown an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
assertThat(e.getMessage(), containsString("/root/@url"));
}
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor in project knox by apache.
the class JsonFilterReaderTest method testNamesWithDots.
@Test
public void testNamesWithDots() throws IOException {
InputStream stream = TestUtils.getResourceStream(this.getClass(), "dotted-field-name.json");
String input = IOUtils.toString(stream, Charset.forName("UTF-8"));
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("test-filter");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("application/json");
// NOTE: The field names are rewritten first so the values rules need to match the rewritten name.
contentConfig.addApply("$.name<testField>", "test-rule");
contentConfig.addApply("$.name<test_field>", "test-rule");
contentConfig.addApply("$.name<test-field>", "test-rule");
contentConfig.addApply("$['name<test.field>']", "test-rule");
JsonFilterReader filter = new TestJsonFilterReader(new StringReader(input), contentConfig);
String output = IOUtils.toString(filter);
// System.out.println( "OUTPUT=" + output );
JsonAssert.with(output).assertThat("$['name<testField>']", is("value:test-rule<testField value>"));
JsonAssert.with(output).assertThat("$['name<test_field>']", is("value:test-rule<test_field value>"));
JsonAssert.with(output).assertThat("$['name<test-field>']", is("value:test-rule<test-field value>"));
JsonAssert.with(output).assertThat("$['name<test.field>']", is("value:test-rule<test.field value>"));
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor in project knox by apache.
the class XmlFilterReaderTest method testSimpleBuffered.
// @Test
// public void testSimpleScoped() throws IOException, ParserConfigurationException, XMLStreamException {
// UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
// UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter( "filter-1" );
// UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent( "text/xml" );
//
// String inputXml = "<root/>";
// StringReader inputReader = new StringReader( inputXml );
// XmlStaxFilterReader filterReader = new NoopXmlFilterReader( inputReader );
// String outputHtml = new String( IOUtils.toCharArray( filterReader ) );
// assertThat( the( outputHtml ), hasXPath( "/root" ) );
// }
@Test
public void testSimpleBuffered() throws IOException, ParserConfigurationException, XMLStreamException {
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("text/xml");
UrlRewriteFilterBufferDescriptor scopeConfig = contentConfig.addBuffer("/root");
String input = "<root/>";
// System.out.println( "INPUT=" + input );
StringReader inputReader = new StringReader(input);
XmlFilterReader filterReader = new NoopXmlFilterReader(inputReader, contentConfig);
String output = new String(IOUtils.toCharArray(filterReader));
// System.out.println( "OUTPUT=" + output );
assertThat(the(output), hasXPath("/root"));
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor in project knox by apache.
the class XmlFilterReaderTest method testStreamedApplyForElementsConfigShortcut.
@Test
public void testStreamedApplyForElementsConfigShortcut() throws Exception {
InputStream stream = TestUtils.getResourceStream(this.getClass(), "properties-elements.xml");
String input = IOUtils.toString(stream, Charset.forName("UTF-8"));
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("text/xml");
UrlRewriteFilterApplyDescriptor applyConfig = contentConfig.addApply("/properties/property/value", "test-rule-2");
// UrlRewriteRulesDescriptorFactory.store( rulesConfig, "xml", new PrintWriter( System.out ) );
XmlFilterReader filter = new TestXmlFilterReader(new StringReader(input), contentConfig);
String output = IOUtils.toString(filter);
// System.out.println( "OUTPUT=" + output );
assertThat(the(output), hasXPath("/properties/property[1]/name/text()", equalTo("test-name-1")));
assertThat(the(output), hasXPath("/properties/property[1]/value/text()", equalTo("text:test-rule-2{test-value-1}")));
assertThat(the(output), hasXPath("/properties/property[2]/name/text()", equalTo("test-name-2")));
assertThat(the(output), hasXPath("/properties/property[2]/value/text()", equalTo("text:test-rule-2{test-value-2}")));
assertThat(the(output), hasXPath("/properties/property[3]/name/text()", equalTo("test-name-3")));
assertThat(the(output), hasXPath("/properties/property[3]/value/text()", equalTo("text:test-rule-2{test-value-3}")));
}
Aggregations