This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new c22ce22d7b Align web.xml logged output with urlPatternsProvidedInDecodedForm
c22ce22d7b is described below
commit c22ce22d7b1badbfa31fc1b05c3c7048b02665a7
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 f712d62cfd..7fe0ed4728 100644
--- a/java/org/apache/tomcat/util/descriptor/web/WebXml.java
+++ b/java/org/apache/tomcat/util/descriptor/web/WebXml.java
@@ -1521,7 +1521,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
@@ -1607,7 +1610,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()) {
@@ -1667,7 +1674,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()) {
@@ -1690,7 +1697,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());
@@ -1770,7 +1780,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);
@@ -1813,8 +1826,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 8736828a97..53899a777c 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.