This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new 901766f707 Align web.xml logged output with
urlPatternsProvidedInDecodedForm
901766f707 is described below
commit 901766f707f8790ca8d50457214dfba42e518f42
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 ab7bbe9f1c..65d1e251a2 100644
--- a/java/org/apache/tomcat/util/descriptor/web/WebXml.java
+++ b/java/org/apache/tomcat/util/descriptor/web/WebXml.java
@@ -1528,7 +1528,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
@@ -1614,7 +1617,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()) {
@@ -1694,7 +1701,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()) {
@@ -1717,7 +1724,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());
@@ -1797,7 +1807,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);
@@ -1840,8 +1853,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 70b23617db..6b5a4f1bec 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -118,6 +118,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="Cluster">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]