Author: cziegeler
Date: Fri Feb 13 16:46:30 2015
New Revision: 1659600

URL: http://svn.apache.org/r1659600
Log:
SLING-4420 : Escape quotes and double quotes when escaping for XML

Modified:
    
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/ResponseUtil.java
    
sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/ResponseUtilTest.java

Modified: 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/ResponseUtil.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/ResponseUtil.java?rev=1659600&r1=1659599&r2=1659600&view=diff
==============================================================================
--- 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/ResponseUtil.java
 (original)
+++ 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/ResponseUtil.java
 Fri Feb 13 16:46:30 2015
@@ -65,6 +65,10 @@ public class ResponseUtil {
                 target.write("<");
             } else if(c == '>') {
                 target.write(">");
+            } else if(c == '"') {
+                target.write(""");
+            } else if(c == '\'') {
+                target.write("'");
             } else {
                 target.write(c);
             }
@@ -82,8 +86,8 @@ public class ResponseUtil {
     }
 
     /** Escape xml text */
-    public static String escapeXml(String input) {
-        if(input == null) {
+    public static String escapeXml(final String input) {
+        if (input == null) {
             return null;
         }
 
@@ -96,6 +100,10 @@ public class ResponseUtil {
                 b.append("<");
             } else if(c == '>') {
                 b.append(">");
+            } else if(c == '"') {
+                b.append(""");
+            } else if(c == '\'') {
+                b.append("'");
             } else {
                 b.append(c);
             }

Modified: 
sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/ResponseUtilTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/ResponseUtilTest.java?rev=1659600&r1=1659599&r2=1659600&view=diff
==============================================================================
--- 
sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/ResponseUtilTest.java
 (original)
+++ 
sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/ResponseUtilTest.java
 Fri Feb 13 16:46:30 2015
@@ -26,21 +26,21 @@ public class ResponseUtilTest extends Te
     public void testNullInput() {
         assertNull(ResponseUtil.escapeXml(null));
     }
-    
+
     public void testNoEscapes() {
         assertEquals("foo and bar", ResponseUtil.escapeXml("foo and bar"));
     }
-    
+
     public void testEscapes() {
-        assertEquals("<bonnie> & </clyde> && others", 
-                ResponseUtil.escapeXml("<bonnie> & </clyde> && others"));
+        assertEquals("&lt;bonnie&gt; &amp; &lt;/clyde&gt; &amp;&amp; others 
are having fun with &quot; and &apos; characters",
+                ResponseUtil.escapeXml("<bonnie> & </clyde> && others are 
having fun with \" and ' characters"));
     }
-    
+
     public void testXmlEscapingWriter() throws IOException {
         final StringWriter sw = new StringWriter();
         final Writer w = ResponseUtil.getXmlEscapingWriter(sw);
-        w.write("<bonnie> & </clyde> && others");
+        w.write("<bonnie> & </clyde> && others are having fun with \" and ' 
characters");
         w.flush();
-        assertEquals("&lt;bonnie&gt; &amp; &lt;/clyde&gt; &amp;&amp; others", 
sw.toString()); 
+        assertEquals("&lt;bonnie&gt; &amp; &lt;/clyde&gt; &amp;&amp; others 
are having fun with &quot; and &apos; characters", sw.toString());
     }
 }


Reply via email to