This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/11.0.x by this push:
new 4b91833615 Align web.xml logged output with
urlPatternsProvidedInDecodedForm
4b91833615 is described below
commit 4b918336154a2956b73e479babaa73f22a56fc90
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Aug 19 07:59:13 2026 +0100
Align web.xml logged output with urlPatternsProvidedInDecodedForm
---
.../apache/tomcat/util/descriptor/web/WebXml.java | 27 ++++++++++++++++------
webapps/docs/changelog.xml | 4 ++++
2 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/java/org/apache/tomcat/util/descriptor/web/WebXml.java
b/java/org/apache/tomcat/util/descriptor/web/WebXml.java
index df71159faf..be7a105ea1 100644
--- a/java/org/apache/tomcat/util/descriptor/web/WebXml.java
+++ b/java/org/apache/tomcat/util/descriptor/web/WebXml.java
@@ -1535,7 +1535,10 @@ public class WebXml extends XmlEncodingBase implements
DocumentProperties.Charse
sb.append(" <url-pattern>*</url-pattern>\n");
} else {
for (String urlPattern : filterMap.getURLPatterns()) {
- appendElement(sb, INDENT4, "url-pattern",
encodeUrl(urlPattern));
+ if (!getUrlPatternsProvidedInDecodedForm()) {
+ urlPattern = encodeUrl(urlPattern);
+ }
+ appendElement(sb, INDENT4, "url-pattern", urlPattern);
}
}
// dispatcher was added in Servlet 2.4
@@ -1621,7 +1624,11 @@ public class WebXml extends XmlEncodingBase implements
DocumentProperties.Charse
for (Map.Entry<String,String> entry : servletMappings.entrySet()) {
sb.append(" <servlet-mapping>\n");
appendElement(sb, INDENT4, "servlet-name", entry.getValue());
- appendElement(sb, INDENT4, "url-pattern",
encodeUrl(entry.getKey()));
+ if (getUrlPatternsProvidedInDecodedForm()) {
+ appendElement(sb, INDENT4, "url-pattern", entry.getKey());
+ } else {
+ appendElement(sb, INDENT4, "url-pattern",
encodeUrl(entry.getKey()));
+ }
sb.append(" </servlet-mapping>\n");
}
if (!servletMappings.isEmpty()) {
@@ -1701,7 +1708,7 @@ public class WebXml extends XmlEncodingBase implements
DocumentProperties.Charse
} else if (errorPage.getErrorCode() > 0) {
appendElement(sb, INDENT4, "error-code",
Integer.toString(errorCode));
}
- appendElement(sb, INDENT4, "location", errorPage.getLocation(),
true);
+ appendElement(sb, INDENT4, "location", errorPage.getLocation(),
!getUrlPatternsProvidedInDecodedForm());
sb.append(" </error-page>\n");
}
if (!errorPages.isEmpty()) {
@@ -1724,7 +1731,10 @@ public class WebXml extends XmlEncodingBase implements
DocumentProperties.Charse
for (JspPropertyGroup jpg : jspPropertyGroups) {
sb.append(" <jsp-property-group>\n");
for (String urlPattern : jpg.getUrlPatterns()) {
- appendElement(sb, INDENT6, "url-pattern",
encodeUrl(urlPattern));
+ if (!getUrlPatternsProvidedInDecodedForm()) {
+ urlPattern = encodeUrl(urlPattern);
+ }
+ appendElement(sb, INDENT6, "url-pattern", urlPattern);
}
appendElement(sb, INDENT6, "el-ignored",
jpg.getElIgnored());
appendElement(sb, INDENT6, "page-encoding",
jpg.getPageEncoding());
@@ -1804,7 +1814,10 @@ public class WebXml extends XmlEncodingBase implements
DocumentProperties.Charse
appendElement(sb, INDENT6, "web-resource-name",
collection.getName());
appendElement(sb, INDENT6, "description",
collection.getDescription());
for (String urlPattern : collection.findPatterns()) {
- appendElement(sb, INDENT6, "url-pattern",
encodeUrl(urlPattern));
+ if (!getUrlPatternsProvidedInDecodedForm()) {
+ urlPattern = encodeUrl(urlPattern);
+ }
+ appendElement(sb, INDENT6, "url-pattern", urlPattern);
}
for (String method : collection.findMethods()) {
appendElement(sb, INDENT6, "http-method", method);
@@ -1847,8 +1860,8 @@ public class WebXml extends XmlEncodingBase implements
DocumentProperties.Charse
appendElement(sb, INDENT4, "realm-name",
loginConfig.getRealmName());
if (loginConfig.getErrorPage() != null ||
loginConfig.getLoginPage() != null) {
sb.append(" <form-login-config>\n");
- appendElement(sb, INDENT6, "form-login-page",
loginConfig.getLoginPage(), true);
- appendElement(sb, INDENT6, "form-error-page",
loginConfig.getErrorPage(), true);
+ appendElement(sb, INDENT6, "form-login-page",
loginConfig.getLoginPage(), !getUrlPatternsProvidedInDecodedForm());
+ appendElement(sb, INDENT6, "form-error-page",
loginConfig.getErrorPage(), !getUrlPatternsProvidedInDecodedForm());
sb.append(" </form-login-config>\n");
}
sb.append(" </login-config>\n\n");
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9d7d3d9dac..346d6cd9cf 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -127,6 +127,10 @@
active sessions, swap out the least recently used eligible sessions
first. Pull request <pr>1045</pr> provided by sainadh777. (markt)
</fix>
+ <fix>
+ Align web.xml logging output with the new <code>Context</code>
attribute
+ <code>urlPatternsProvidedInDecodedForm</code>. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]