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">
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.