svn commit: r1816461 - in /ofbiz/ofbiz-framework/trunk: build.gradle framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1816461 - in /ofbiz/ofbiz-framework/trunk: build.gradle framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java

jleroux@apache.org
Author: jleroux
Date: Mon Nov 27 15:19:47 2017
New Revision: 1816461

URL: http://svn.apache.org/viewvc?rev=1816461&view=rev
Log:
Fixed: Replace org.apache.commons.lang.StringEscapeUtils.unescapeHtml() method
by org.jsoup.parser.Parser.unescapeEntities()
(OFBIZ-10023)

StringEscapeUtils.unescapeHtml() is deprecated or at least not reliable

After few tests using the Parser.unescapeEntities() strict mode seems OK

Modified:
    ofbiz/ofbiz-framework/trunk/build.gradle
    ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
    ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java

Modified: ofbiz/ofbiz-framework/trunk/build.gradle
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/build.gradle?rev=1816461&r1=1816460&r2=1816461&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/build.gradle (original)
+++ ofbiz/ofbiz-framework/trunk/build.gradle Mon Nov 27 15:19:47 2017
@@ -142,6 +142,7 @@ dependencies {
     compile 'oro:oro:2.0.8'
     compile 'wsdl4j:wsdl4j:1.6.3'
     compile 'io.jsonwebtoken:jjwt:0.9.0'
+    compile 'org.jsoup:jsoup:1.11.2'
 
     // ofbiz unit-test compile libs
     testCompile 'org.mockito:mockito-core:2.+'

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java?rev=1816461&r1=1816460&r2=1816461&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java Mon Nov 27 15:19:47 2017
@@ -25,7 +25,6 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.ofbiz.base.util.Debug;
 import org.apache.ofbiz.base.util.FileUtil;
 import org.apache.ofbiz.base.util.UtilGenerics;
@@ -36,6 +35,7 @@ import org.apache.ofbiz.base.util.UtilXm
 import org.apache.ofbiz.base.util.cache.UtilCache;
 import org.apache.ofbiz.service.DispatchContext;
 import org.apache.ofbiz.service.ServiceUtil;
+import org.jsoup.parser.Parser;
 import org.w3c.dom.Comment;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -118,9 +118,9 @@ public class SaveLabelsToXmlFile {
                         continue;
                     }
                     Element propertyElem = UtilXml.addChildElement(resourceElem, "property", resourceDocument);
-                    propertyElem.setAttribute("key", StringEscapeUtils.unescapeHtml(labelInfo.getLabelKey()));
+                    propertyElem.setAttribute("key", Parser.unescapeEntities(labelInfo.getLabelKey(), true));
                     if (UtilValidate.isNotEmpty(labelInfo.getLabelKeyComment())) {
-                        Comment labelKeyComment = resourceDocument.createComment(StringEscapeUtils.unescapeHtml(labelInfo.getLabelKeyComment()));
+                        Comment labelKeyComment = resourceDocument.createComment(Parser.unescapeEntities(labelInfo.getLabelKeyComment(), true));
                         Node parent = propertyElem.getParentNode();
                         parent.insertBefore(labelKeyComment, propertyElem);
                     }
@@ -131,11 +131,11 @@ public class SaveLabelsToXmlFile {
                             valueString = labelValue.getLabelValue();
                         }
                         if (UtilValidate.isNotEmpty(valueString)) {
-                            valueString = StringEscapeUtils.unescapeHtml(valueString);
+                            valueString = Parser.unescapeEntities(valueString, true);
                             Element valueElem = UtilXml.addChildElementValue(propertyElem, "value", valueString, resourceDocument);
                             valueElem.setAttribute("xml:lang", localeFound);
                             if (UtilValidate.isNotEmpty(labelValue.getLabelComment())) {
-                                Comment labelComment = resourceDocument.createComment(StringEscapeUtils.unescapeHtml(labelValue.getLabelComment()));
+                                Comment labelComment = resourceDocument.createComment(Parser.unescapeEntities(labelValue.getLabelComment(), true));
                                 Node parent = valueElem.getParentNode();
                                 parent.insertBefore(labelComment, valueElem);
                             }

Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java?rev=1816461&r1=1816460&r2=1816461&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/WidgetWorker.java Mon Nov 27 15:19:47 2017
@@ -27,7 +27,6 @@ import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.ofbiz.base.util.Debug;
 import org.apache.ofbiz.base.util.UtilCodec;
 import org.apache.ofbiz.base.util.UtilGenerics;
@@ -41,6 +40,7 @@ import org.apache.ofbiz.webapp.control.W
 import org.apache.ofbiz.webapp.taglib.ContentUrlTag;
 import org.apache.ofbiz.widget.model.ModelForm;
 import org.apache.ofbiz.widget.model.ModelFormField;
+import org.jsoup.parser.Parser;
 
 public final class WidgetWorker {
 
@@ -53,7 +53,7 @@ public final class WidgetWorker {
         // We may get an encoded request like: /projectmgr/control/EditTaskContents?workEffortId=10003
         // Try to reducing a possibly encoded string down to its simplest form: /projectmgr/control/EditTaskContents?workEffortId=10003
         // This step make sure the following appending externalLoginKey operation to work correctly
-        String localRequestName = StringEscapeUtils.unescapeHtml(target);
+        String localRequestName = Parser.unescapeEntities(target, true);
         localRequestName = UtilHttp.encodeAmpersands(localRequestName);
 
         Appendable localWriter = new StringWriter();