Updated Branches: refs/heads/master ddca98956 -> b46a9741b
WICKET-4937 Add IResponseFilter that can filter out invalid XML characters Export the root element name in XmlAjaxResponse as constrants and use these constants in XmlCleaningResponseFilter Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b46a9741 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b46a9741 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b46a9741 Branch: refs/heads/master Commit: b46a9741b79e06fd2c841c19f6f6f250e78716e1 Parents: ddca989 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu Dec 20 15:00:58 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu Dec 20 15:00:58 2012 +0200 ---------------------------------------------------------------------- .../org/apache/wicket/ajax/XmlAjaxResponse.java | 10 ++++++++-- .../response/filter/XmlCleaningResponseFilter.java | 3 ++- .../filter/XmlCleaningResponseFilterTest.java | 13 +++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/b46a9741/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java index 4ab9381..29a008f 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java @@ -43,6 +43,12 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse { private static final Logger LOG = LoggerFactory.getLogger(XmlAjaxResponse.class); + /** + * The name of the root element in the produced XML document. + */ + public static final String START_ROOT_ELEMENT = "<ajax-response>"; + public static final String END_ROOT_ELEMENT = "</ajax-response>"; + public XmlAjaxResponse(final Page page) { super(page); @@ -60,7 +66,7 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse response.write("<?xml version=\"1.0\" encoding=\""); response.write(encoding); response.write("\"?>"); - response.write("<ajax-response>"); + response.write(START_ROOT_ELEMENT); } @Override @@ -151,7 +157,7 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse @Override protected void writeFooter(Response response, String encoding) { - response.write("</ajax-response>"); + response.write(END_ROOT_ELEMENT); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/b46a9741/wicket-core/src/main/java/org/apache/wicket/response/filter/XmlCleaningResponseFilter.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/response/filter/XmlCleaningResponseFilter.java b/wicket-core/src/main/java/org/apache/wicket/response/filter/XmlCleaningResponseFilter.java index 5abc2de..3289016 100644 --- a/wicket-core/src/main/java/org/apache/wicket/response/filter/XmlCleaningResponseFilter.java +++ b/wicket-core/src/main/java/org/apache/wicket/response/filter/XmlCleaningResponseFilter.java @@ -16,6 +16,7 @@ */ package org.apache.wicket.response.filter; +import org.apache.wicket.ajax.XmlAjaxResponse; import org.apache.wicket.util.string.AppendingStringBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,7 +70,7 @@ public class XmlCleaningResponseFilter implements IResponseFilter // <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ajax-response> int min = Math.min(150, responseBuffer.length()); String firstNChars = responseBuffer.substring(0, min); - return firstNChars.contains("<ajax-response>"); + return firstNChars.contains(XmlAjaxResponse.START_ROOT_ELEMENT); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/b46a9741/wicket-core/src/test/java/org/apache/wicket/response/filter/XmlCleaningResponseFilterTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/response/filter/XmlCleaningResponseFilterTest.java b/wicket-core/src/test/java/org/apache/wicket/response/filter/XmlCleaningResponseFilterTest.java index e087ec0..1465025 100644 --- a/wicket-core/src/test/java/org/apache/wicket/response/filter/XmlCleaningResponseFilterTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/response/filter/XmlCleaningResponseFilterTest.java @@ -16,18 +16,19 @@ */ package org.apache.wicket.response.filter; +import static org.apache.wicket.ajax.XmlAjaxResponse.END_ROOT_ELEMENT; +import static org.apache.wicket.ajax.XmlAjaxResponse.START_ROOT_ELEMENT; import org.apache.wicket.util.string.AppendingStringBuffer; import org.junit.Assert; import org.junit.Test; + + /** * Tests for XmlCleaningResponseFilter */ public class XmlCleaningResponseFilterTest extends Assert { - public static final String AJAX_RESPONSE_START = "<ajax-response>b"; - public static final String AJAX_RESPONSE_END = "b</ajax-response>"; - /** * Tests that invalid XML characters are removed * @throws Exception @@ -44,7 +45,7 @@ public class XmlCleaningResponseFilterTest extends Assert { AppendingStringBuffer filtered = filter.filter(new AppendingStringBuffer(text)); assertEquals(String.format("checking Unicode codepoint 0x%X:", invalidChar), - AJAX_RESPONSE_START+AJAX_RESPONSE_END, filtered.toString()); + START_ROOT_ELEMENT+END_ROOT_ELEMENT, filtered.toString()); } } @@ -73,9 +74,9 @@ public class XmlCleaningResponseFilterTest extends Assert { { String character = new String(new int[] {ch}, 0, 1); return new StringBuilder() - .append(AJAX_RESPONSE_START) + .append(START_ROOT_ELEMENT) .append(character) - .append(AJAX_RESPONSE_END); + .append(END_ROOT_ELEMENT); } /**
