You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/03/05 22:01:51 UTC
svn commit: r1574657 - in /tomcat/trunk:
java/org/apache/jasper/Constants.java java/org/apache/jasper/JspC.java
java/org/apache/jasper/servlet/JspCServletContext.java
webapps/docs/changelog.xml
Author: markt
Date: Wed Mar 5 21:01:50 2014
New Revision: 1574657
URL: http://svn.apache.org/r1574657
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56199
Restore validateXml option to JspC
Modified:
tomcat/trunk/java/org/apache/jasper/Constants.java
tomcat/trunk/java/org/apache/jasper/JspC.java
tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/jasper/Constants.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/Constants.java?rev=1574657&r1=1574656&r2=1574657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/Constants.java (original)
+++ tomcat/trunk/java/org/apache/jasper/Constants.java Wed Mar 5 21:01:50 2014
@@ -162,6 +162,16 @@ public class Constants {
"org.apache.jasper.XML_VALIDATE_TLD";
/**
+ * Name of the ServletContext init-param that determines if the XML parser
+ * used for web.xml files will be validating or not. Note that this is only
+ * used when using JspC. In normal operation, Jasper obtains the JspConfig
+ * information directly from the ServletContext and therefore does not need
+ * to parse web.xml.
+ */
+ public static final String XML_VALIDATION_INIT_PARAM =
+ "org.apache.jasper.XML_VALIDATE";
+
+ /**
* Name of the ServletContext init-param that determines if the XML parsers
* will block the resolution of external entities.
* <p>
Modified: tomcat/trunk/java/org/apache/jasper/JspC.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspC.java?rev=1574657&r1=1574656&r2=1574657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/JspC.java (original)
+++ tomcat/trunk/java/org/apache/jasper/JspC.java Wed Mar 5 21:01:50 2014
@@ -134,6 +134,7 @@ public class JspC extends Task implement
protected static final String SWITCH_SMAP = "-smap";
protected static final String SWITCH_DUMP_SMAP = "-dumpsmap";
protected static final String SWITCH_VALIDATE_TLD = "-validateTld";
+ protected static final String SWITCH_VALIDATE_XML = "-validateXml";
protected static final String SWITCH_BLOCK_EXTERNAL = "-blockExternal";
protected static final String SWITCH_NO_BLOCK_EXTERNAL = "-no-blockExternal";
protected static final String SHOW_SUCCESS ="-s";
@@ -167,6 +168,7 @@ public class JspC extends Task implement
protected boolean trimSpaces = false;
protected boolean genStringAsCharArray = false;
protected boolean validateTld;
+ protected boolean validateXml;
protected boolean blockExternal = true;
protected boolean xpoweredBy;
protected boolean mappedFile = false;
@@ -376,6 +378,8 @@ public class JspC extends Task implement
smapDumped = true;
} else if (tok.equals(SWITCH_VALIDATE_TLD)) {
setValidateTld(true);
+ } else if (tok.equals(SWITCH_VALIDATE_XML)) {
+ setValidateXml(true);
} else if (tok.equals(SWITCH_BLOCK_EXTERNAL)) {
setBlockExternal(true);
} else if (tok.equals(SWITCH_NO_BLOCK_EXTERNAL)) {
@@ -867,6 +871,14 @@ public class JspC extends Task implement
return validateTld;
}
+ public void setValidateXml( boolean b ) {
+ this.validateXml = b;
+ }
+
+ public boolean isValidateXml() {
+ return validateXml;
+ }
+
public void setBlockExternal( boolean b ) {
this.blockExternal = b;
}
@@ -1455,9 +1467,14 @@ public class JspC extends Task implement
if (isValidateTld()) {
context.setInitParameter(Constants.XML_VALIDATION_TLD_INIT_PARAM, "true");
}
+ if (isValidateXml()) {
+ context.setInitParameter(Constants.XML_VALIDATION_INIT_PARAM, "true");
+ }
context.setInitParameter(Constants.XML_BLOCK_EXTERNAL_INIT_PARAM,
String.valueOf(isBlockExternal()));
+ context.processWebXml();
+
TldScanner scanner = new TldScanner(
context, true, isValidateTld(), isBlockExternal());
scanner.setClassLoader(classLoader);
Modified: tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java?rev=1574657&r1=1574656&r2=1574657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java (original)
+++ tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java Wed Mar 5 21:01:50 2014
@@ -97,10 +97,10 @@ public class JspCServletContext implemen
/**
* Merged web.xml for the application.
*/
- private final WebXml webXml;
+ private WebXml webXml;
- private final JspConfigDescriptor jspConfigDescriptor;
+ private JspConfigDescriptor jspConfigDescriptor;
/**
* Web application class loader.
@@ -125,7 +125,9 @@ public class JspCServletContext implemen
myLogWriter = aLogWriter;
myResourceBaseURL = aResourceBaseURL;
this.loader = classLoader;
+ }
+ public void processWebXml() throws JasperException {
this.webXml = buildMergedWebXml();
jspConfigDescriptor = webXml.getJspConfigDescriptor();
}
@@ -140,7 +142,9 @@ public class JspCServletContext implemen
} else {
blockExternal = Boolean.parseBoolean(blockExternalString);
}
- WebXmlParser webXmlParser = new WebXmlParser(false, false, blockExternal);
+ boolean validate = Boolean.parseBoolean(
+ getInitParameter(Constants.XML_VALIDATION_INIT_PARAM));
+ WebXmlParser webXmlParser = new WebXmlParser(validate, validate, blockExternal);
// Use this class's classloader as Ant will have set the TCCL to its own
webXmlParser.setClassLoader(getClass().getClassLoader());
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1574657&r1=1574656&r2=1574657&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Mar 5 21:01:50 2014
@@ -119,6 +119,10 @@
<fix>
Remove an unnecessary null check identified by FindBugs. (markt)
</fix>
+ <fix>
+ <bug>56199</bug>: Restore validateXml option for JspC which determines
+ if web.xml will be parsed with a validating parser. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="WebSocket">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org