(tomcat) branch 10.1.x updated: Align web.xml logged output with urlPatternsProvidedInDecodedForm

[email protected]
Newsgroups gmane.comp.jakarta.tomcat.devel
Message-ID <178712389021.565329.16735452670719128186@gitbox3-he-fi.apache.org>
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">
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.