You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by su...@apache.org on 2016/11/09 22:08:38 UTC
knox git commit: KNOX-763 Added rewrite filter apply capability to
text values in html content
Repository: knox
Updated Branches:
refs/heads/master c51b0feb6 -> c7c58cdda
KNOX-763 Added rewrite filter apply capability to text values in html content
Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/c7c58cdd
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/c7c58cdd
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/c7c58cdd
Branch: refs/heads/master
Commit: c7c58cddab5e7818d6f2a390cb354a9c16aaf8da
Parents: c51b0fe
Author: Sumit Gupta <su...@apache.org>
Authored: Wed Nov 9 17:07:24 2016 -0500
Committer: Sumit Gupta <su...@apache.org>
Committed: Wed Nov 9 17:07:24 2016 -0500
----------------------------------------------------------------------
.../rewrite/impl/html/HtmlFilterReaderBase.java | 2 +-
.../api/UrlRewriteServletFilterTest.java | 51 ++++++++++++++++++++
.../api/UrlRewriteServletFilterTest/rewrite.xml | 10 ++++
3 files changed, 62 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/knox/blob/c7c58cdd/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBase.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBase.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBase.java
index a6222a8..f9d11cf 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBase.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBase.java
@@ -218,7 +218,7 @@ public abstract class HtmlFilterReaderBase extends Reader implements UrlRewriteF
// embedded javascript content
outputValue = UrlRewriteUtil.filterJavaScript( inputValue, config, this, REGEX_COMPILER );
} else {
- outputValue = filterText( stack.peek().getQName(), inputValue, null );
+ outputValue = filterText( stack.peek().getQName(), inputValue, getRuleName(inputValue) );
}
}
if( outputValue == null ) {
http://git-wip-us.apache.org/repos/asf/knox/blob/c7c58cdd/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest.java b/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest.java
index 54fdfa3..1950bf3 100644
--- a/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest.java
+++ b/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest.java
@@ -759,6 +759,57 @@ public class UrlRewriteServletFilterTest {
assertThat( the( actual ), hasXPath( "/root/url/text()", equalTo( "http://mock-host:42/test-output-path-2" ) ) );
}
+ @Test
+ public void testResponseHtmlBodyRewriteCSSImport() throws Exception {
+ Map<String,String> initParams = new HashMap<String,String>();
+ //initParams.put( "url, "" );
+ initParams.put( "response.body", "test-filter-5" );
+ //initParams.put( "response", "" );
+ setUp( initParams );
+
+ String responseHtml = "<!DOCTYPE html>\n" +
+ "<html>\n" +
+ " <head>\n" +
+ " <meta charset=\"UTF-8\">\n" +
+ " <style type=\"text/css\">@import \"pretty.css\";</style>" +
+ " <script src=\"script.js\"></script>\n" +
+ " </head>\n" +
+ " <body>\n" +
+ " </body>\n" +
+ "</html>";
+ String rewrittenResponseHtml = "<!DOCTYPE html>\n" +
+ "<html>\n" +
+ " <head>\n" +
+ " <meta charset=\"UTF-8\">\n" +
+ " <style type=\"text/css\">@import \"http://someotherhost/stylesheets/pretty.css\";</style>" +
+ " <script src=\"script.js\"></script>\n" +
+ " </head>\n" +
+ " <body>\n" +
+ " </body>\n" +
+ "</html>";
+
+ // Setup the server side request/response interaction.
+ interaction.expect()
+ .method( "GET" )
+ .requestUrl( "http://mock-host:42/test-output-path-1" );
+ interaction.respond()
+ .contentType( "application/html" )
+ .content( responseHtml, Charset.forName( "UTF-8" ) )
+ .status( 200 );
+ interactions.add( interaction );
+ request.setMethod( "GET" );
+ request.setURI( "/test-input-path" );
+ request.setHeader( "Host", "mock-host:42" );
+ request.setHeader( "Content-Type", "application/html" );
+
+ // Execute the request.
+ response = TestUtils.execute( server, request );
+
+ assertThat( response.getStatus(), is( 200 ) );
+ String content = response.getContent();
+ assertThat(content, is(rewrittenResponseHtml));
+ }
+
private static class SetupFilter implements Filter {
@Override
public void init( FilterConfig filterConfig ) throws ServletException {
http://git-wip-us.apache.org/repos/asf/knox/blob/c7c58cdd/gateway-provider-rewrite/src/test/resources/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest/rewrite.xml
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/test/resources/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest/rewrite.xml b/gateway-provider-rewrite/src/test/resources/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest/rewrite.xml
index e3e9c63..72a7ecc 100644
--- a/gateway-provider-rewrite/src/test/resources/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest/rewrite.xml
+++ b/gateway-provider-rewrite/src/test/resources/org/apache/hadoop/gateway/filter/rewrite/api/UrlRewriteServletFilterTest/rewrite.xml
@@ -53,6 +53,10 @@
<rewrite template="http://someotherhost/stylesheets/pretty.css"/>
</rule>
+ <rule name="test-rule-html-import-attribute">
+ <rewrite template="@import "http://someotherhost/stylesheets/pretty.css";"/>
+ </rule>
+
<filter name="test-filter-1">
<content type="application/json">
<apply path="$.url" rule="test-rule-1"/>
@@ -91,5 +95,11 @@
</content>
</filter>
+ <filter name="test-filter-5">
+ <content type="*/html">
+ <apply path="(@import)+ .*css.*" rule="test-rule-html-import-attribute"/>
+ </content>
+ </filter>
+
</rules>
\ No newline at end of file