This is an automated email from the ASF dual-hosted git repository.

dsmiley pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new c481b0a08ce Synchronize webdefault.xml and web.xml with Jetty 12 
(#4153)
c481b0a08ce is described below

commit c481b0a08ce870d3546496368588fcf634ae3cf5
Author: David Smiley <[email protected]>
AuthorDate: Mon Mar 9 12:10:08 2026 -0400

    Synchronize webdefault.xml and web.xml with Jetty 12 (#4153)
    
    web.xml & webdefault.xml were synchronized with Jetty 12 / Jakarta EE10
    Not anticipating any practical impact.
---
 changelog/unreleased/webxmlee10.yml |   7 +
 solr/server/etc/webdefault.xml      | 293 ++++++++++--------------------------
 solr/webapp/web/WEB-INF/web.xml     |  10 +-
 3 files changed, 95 insertions(+), 215 deletions(-)

diff --git a/changelog/unreleased/webxmlee10.yml 
b/changelog/unreleased/webxmlee10.yml
new file mode 100644
index 00000000000..cccbe47e703
--- /dev/null
+++ b/changelog/unreleased/webxmlee10.yml
@@ -0,0 +1,7 @@
+title: web.xml & webdefault.xml were synchronized with Jetty 12 / Jakarta EE10
+type: other
+authors:
+  - name: David Smiley
+links:
+  - name: PR#4153
+    url: https://github.com/apache/solr/pull/4153
diff --git a/solr/server/etc/webdefault.xml b/solr/server/etc/webdefault.xml
index b1f7095966d..96ec3cb8e4d 100644
--- a/solr/server/etc/webdefault.xml
+++ b/solr/server/etc/webdefault.xml
@@ -1,51 +1,61 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- synchronized from Jetty 12 with minor modifications -->
+<web-app
+  xmlns="https://jakarta.ee/xml/ns/jakartaee";
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee 
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd";
+  metadata-complete="true"
+  version="6.0">
 
   <!-- ===================================================================== 
-->
   <!-- This file contains the default descriptor for web applications.       
-->
   <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-->
   <!-- The intent of this descriptor is to include jetty specific or common  
-->
-  <!-- configuration for all webapps.   If a context has a webdefault.xml    
-->
-  <!-- descriptor, it is applied before the contexts own web.xml file        
-->
+  <!-- configuration for all webapps.   If a context has a webdefault-ee10.xml 
   -->
+  <!-- descriptor, it is applied before the context's own web.xml file       
-->
   <!--                                                                       
-->
-  <!-- A context may be assigned a default descriptor by:                    
-->
-  <!--  + Calling WebApplicationContext.setDefaultsDescriptor                
-->
-  <!--  + Passed an arg to addWebApplications                                
-->
+  <!-- A context may be assigned a default descriptor by calling             
-->
+  <!-- WebAppContext.setDefaultsDescriptor(String).                          
-->
   <!--                                                                       
-->
-  <!-- This file is used both as the resource within the jetty.jar (which is 
-->
-  <!-- used as the default if no explicit defaults descriptor is set) and it 
-->
-  <!-- is copied to the etc directory of the Jetty distro and explicitly     
-->
-  <!-- by the jetty.xml file.                                                
-->
+  <!-- This file is present in the jetty-webapp.jar, and is used as the      
-->
+  <!-- defaults descriptor if no other is explicitly set on a context.       
-->
   <!--                                                                       
-->
+  <!-- A copy of this file is also placed into the $JETTY_HOME/etc dir of    
-->
+  <!-- the  distribution, and is referenced by some of the other xml files,  
-->
+  <!-- eg the jetty-deploy.xml file.                                         
-->
   <!-- ===================================================================== 
-->
-<web-app
-  xmlns="http://java.sun.com/xml/ns/javaee";
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
-  metadata-complete="true"
-  version="2.5"
->
 
   <description>
-    Default web.xml file.  
+    Default web.xml file.
     This file is applied to a Web application before its own WEB_INF/web.xml 
file
   </description>
-  
+
   <!-- ==================================================================== -->
   <!-- Removes static cache of Methods from java.beans.Introspector to      -->
   <!-- ensure webapp classloader can be released on undeploy                -->
-  <!-- ==================================================================== 
-->  
+  <!-- ==================================================================== -->
   <listener>
-   
<listener-class>org.eclipse.jetty.ee10.servlet.listener.IntrospectorCleaner</listener-class>
+    
<listener-class>org.eclipse.jetty.ee10.servlet.listener.IntrospectorCleaner</listener-class>
   </listener>
-  
+
 
   <!-- ==================================================================== -->
   <!-- Context params to control Session Cookies                            -->
   <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
   <!--
-    UNCOMMENT TO ACTIVATE <context-param> 
<param-name>org.eclipse.jetty.servlet.SessionDomain</param-name> 
<param-value>127.0.0.1</param-value> </context-param> <context-param>
-    <param-name>org.eclipse.jetty.servlet.SessionPath</param-name> 
<param-value>/</param-value> </context-param> <context-param> 
<param-name>org.eclipse.jetty.servlet.MaxAge</param-name>
-    <param-value>-1</param-value> </context-param>
+    UNCOMMENT TO ACTIVATE
+    <context-param>
+      <param-name>org.eclipse.jetty.session.SessionDomain</param-name>
+      <param-value>127.0.0.1</param-value>
+    </context-param>
+    <context-param>
+      <param-name>org.eclipse.jetty.session.SessionPath</param-name>
+      <param-value>/</param-value>
+    </context-param>
+    <context-param>
+      <param-name>org.eclipse.jetty.session.MaxAge</param-name>
+      <param-value>-1</param-value>
+    </context-param>
   -->
 
   <!-- ==================================================================== -->
@@ -53,7 +63,7 @@
   <!-- This servlet, normally mapped to /, provides the handling for static -->
   <!-- content, OPTIONS and TRACE methods for the context.                  -->
   <!-- The following initParameters are supported:                          -->
-  <!--  
+  <!--
  *  acceptRanges      If true, range requests and responses are
  *                    supported
  *
@@ -65,7 +75,7 @@
  *                    resources could be found. If false, then a welcome
  *                    file must exist on disk. If "exact", then exact
  *                    servlet matches are supported without an existing file.
- *                    Default is true.
+ *                    Default is false.
  *
  *                    This must be false if you want directory listings,
  *                    but have index.jsp in your welcome file list.
@@ -75,44 +85,55 @@
  *
  *  gzip              If set to true, then static content will be served as
  *                    gzip content encoded if a matching resource is
- *                    found ending with ".gz"
+ *                    found ending with ".gz" (default false)
+ *                    (deprecated: use precompressed)
+ *
+ *  precompressed     If set to a comma separated list of encoding types (that 
may be
+ *                    listed in a requests Accept-Encoding header) to file
+ *                    extension mappings to look for and serve. For example:
+ *                    "br=.br,gzip=.gz,bzip2=.bz".
+ *                    If set to a boolean True, then a default set of 
compressed formats
+ *                    will be used, otherwise no precompressed formats.
+ *
+ *  baseResource      Set to replace the context resource base
  *
- *  resourceBase      Set to replace the context resource base
+ *  resourceCache     If set, this is a context attribute name, which the 
servlet
+ *                    will use to look for a shared ResourceCache instance.
  *
- *  resourceCache     If set, this is a context attribute name, which the 
servlet 
- *                    will use to look for a shared ResourceCache instance. 
- *                        
- *  relativeResourceBase
+ *  relativeBaseResource
  *                    Set with a pathname relative to the base of the
  *                    servlet context root. Useful for only serving static 
content out
  *                    of only specific subdirectories.
  *
- *  aliases           If True, aliases of resources are allowed (eg. symbolic
- *                    links and caps variations). May bypass security 
constraints.
+ *  stylesheet        Set with the location of an optional stylesheet that 
will be used
+ *                    to decorate the directory listing html.
+ *
+ *  etags             If True, weak etags will be generated and handled.
  *
  *  maxCacheSize      The maximum total size of the cache or 0 for no cache.
  *  maxCachedFileSize The maximum size of a file to cache
  *  maxCachedFiles    The maximum number of files to cache
  *
  *  useFileMappedBuffer
- *                    If set to true, it will use mapped file buffer to serve 
static content
- *                    when using NIO connector. Setting this value to false 
means that
+ *                    If set to true, it will use mapped file buffers to serve 
static content
+ *                    when using an NIO connector. Setting this value to false 
means that
  *                    a direct buffer will be used instead of a mapped file 
buffer.
- *                    By default, this is set to true.
+ *                    This file sets the value to true.
  *
  *  cacheControl      If set, all static content will have this value set as 
the cache-control
  *                    header.
+ *
+ * encodingHeaderCacheSize
+ *                    Max entries in a cache of ACCEPT-ENCODING headers.
+ *
+ * otherGzipFileExtensions
+ *                    defaults to .svgz but a comma separated list of gzip 
equivalent file extensions can be supplied
+ *
  -->
- 
- 
   <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
   <servlet>
     <servlet-name>default</servlet-name>
     
<servlet-class>org.eclipse.jetty.ee10.servlet.DefaultServlet</servlet-class>
-    <init-param>
-      <param-name>aliases</param-name>
-      <param-value>false</param-value>
-    </init-param>
     <init-param>
       <param-name>acceptRanges</param-name>
       <param-value>true</param-value>
@@ -142,25 +163,13 @@
       <param-value>2048</param-value>
     </init-param>
     <init-param>
-      <param-name>gzip</param-name>
-      <param-value>true</param-value>
+      <param-name>etags</param-name>
+      <param-value>false</param-value>
     </init-param>
     <init-param>
       <param-name>useFileMappedBuffer</param-name>
       <param-value>true</param-value>
     </init-param>
-    <!--
-    <init-param>
-      <param-name>resourceCache</param-name>
-      <param-value>resourceCache</param-value>
-    </init-param>
-    -->
-    <!--
-    <init-param>
-      <param-name>cacheControl</param-name>
-      <param-value>max-age=3600,public</param-value>
-    </init-param>
-    -->
     <load-on-startup>0</load-on-startup>
   </servlet>
 
@@ -169,159 +178,9 @@
     <url-pattern>/</url-pattern>
   </servlet-mapping>
 
-
-  <!-- ==================================================================== -->
-  <!-- JSP Servlet                                                          -->
-  <!-- This is the jasper JSP servlet from the jakarta project              -->
-  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-  <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
-  <!-- used by Glassfish to support JSP pages.  Traditionally, this servlet -->
-  <!-- is mapped to URL patterh "*.jsp".  This servlet supports the         -->
-  <!-- following initialization parameters (default values are in square    -->
-  <!-- brackets):                                                           -->
-  <!--                                                                      -->
-  <!--   checkInterval       If development is false and reloading is true, -->
-  <!--                       background compiles are enabled. checkInterval -->
-  <!--                       is the time in seconds between checks to see   -->
-  <!--                       if a JSP page needs to be recompiled. [300]    -->
-  <!--                                                                      -->
-  <!--   compiler            Which compiler Ant should use to compile JSP   -->
-  <!--                       pages.  See the Ant documenation for more      -->
-  <!--                       information. [javac]                           -->
-  <!--                                                                      -->
-  <!--   classdebuginfo      Should the class file be compiled with         -->
-  <!--                       debugging information?  [true]                 -->
-  <!--                                                                      -->
-  <!--   classpath           What class path should I use while compiling   -->
-  <!--                       generated servlets?  [Created dynamically      -->
-  <!--                       based on the current web application]          -->
-  <!--                       Set to ? to make the container explicitly set  -->
-  <!--                       this parameter.                                -->
-  <!--                                                                      -->
-  <!--   development         Is Jasper used in development mode (will check -->
-  <!--                       for JSP modification on every access)?  [true] -->
-  <!--                                                                      -->
-  <!--   enablePooling       Determines whether tag handler pooling is      -->
-  <!--                       enabled  [true]                                -->
-  <!--                                                                      -->
-  <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
-  <!--                       a separate JVM is used for JSP page compiles   -->
-  <!--                       from the one Tomcat is running in. [true]      -->
-  <!--                                                                      -->
-  <!--   ieClassId           The class-id value to be sent to Internet      -->
-  <!--                       Explorer when using <jsp:plugin> tags.         -->
-  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->
-  <!--                                                                      -->
-  <!--   javaEncoding        Java file encoding to use for generating java  -->
-  <!--                       source files. [UTF-8]                          -->
-  <!--                                                                      -->
-  <!--   keepgenerated       Should we keep the generated Java source code  -->
-  <!--                       for each page instead of deleting it? [true]   -->
-  <!--                                                                      -->
-  <!--   logVerbosityLevel   The level of detailed messages to be produced  -->
-  <!--                       by this servlet.  Increasing levels cause the  -->
-  <!--                       generation of more messages.  Valid values are -->
-  <!--                       FATAL, ERROR, WARNING, INFORMATION, and DEBUG. -->
-  <!--                       [WARNING]                                      -->
-  <!--                                                                      -->
-  <!--   mappedfile          Should we generate static content with one     -->
-  <!--                       print statement per input line, to ease        -->
-  <!--                       debugging?  [false]                            -->
-  <!--                                                                      -->
-  <!--                                                                      -->
-  <!--   reloading           Should Jasper check for modified JSPs?  [true] -->
-  <!--                                                                      -->
-  <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
-  <!--                       debugging be suppressed?  [false]              -->
-  <!--                                                                      -->
-  <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
-  <!--                       dumped to a file? [false]                      -->
-  <!--                       False if suppressSmap is true                  -->
-  <!--                                                                      -->
-  <!--   scratchdir          What scratch directory should we use when      -->
-  <!--                       compiling JSP pages?  [default work directory  -->
-  <!--                       for the current web application]               -->
-  <!--                                                                      -->
-  <!--   tagpoolMaxSize      The maximum tag handler pool size  [5]         -->
-  <!--                                                                      -->
-  <!--   xpoweredBy          Determines whether X-Powered-By response       -->
-  <!--                       header is added by generated servlet  [false]  -->
-  <!--                                                                      -->
-  <!-- If you wish to use Jikes to compile JSP pages:                       -->
-  <!--   Set the init parameter "compiler" to "jikes".  Define              -->
-  <!--   the property "-Dbuild.compiler.emacs=true" when starting Jetty     -->
-  <!--   to cause Jikes to emit error messages in a format compatible with  -->
-  <!--   Jasper.                                                            -->
-  <!--   If you get an error reporting that jikes can't use UTF-8 encoding, -->
-  <!--   try setting the init parameter "javaEncoding" to "ISO-8859-1".     -->
-  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-  <servlet
-    id="jsp"
-  >
-    <servlet-name>jsp</servlet-name>
-    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
-    <init-param>
-      <param-name>logVerbosityLevel</param-name>
-      <param-value>DEBUG</param-value>
-    </init-param>
-    <init-param>
-      <param-name>fork</param-name>
-      <param-value>false</param-value>
-    </init-param>
-    <init-param>
-      <param-name>xpoweredBy</param-name>
-      <param-value>false</param-value>
-    </init-param>
-    <!--  
-    <init-param>
-        <param-name>classpath</param-name>
-        <param-value>?</param-value>
-    </init-param>
-    -->
-    <load-on-startup>0</load-on-startup>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>jsp</servlet-name>
-    <url-pattern>*.jsp</url-pattern>
-    <url-pattern>*.jspf</url-pattern>
-    <url-pattern>*.jspx</url-pattern>
-    <url-pattern>*.xsp</url-pattern>
-    <url-pattern>*.JSP</url-pattern>
-    <url-pattern>*.JSPF</url-pattern>
-    <url-pattern>*.JSPX</url-pattern>
-    <url-pattern>*.XSP</url-pattern>
-  </servlet-mapping>
-
   <!-- ==================================================================== -->
-  <!-- Dynamic Servlet Invoker.                                             -->
-  <!-- This servlet invokes anonymous servlets that have not been defined   -->
-  <!-- in the web.xml or by other means. The first element of the pathInfo  -->
-  <!-- of a request passed to the envoker is treated as a servlet name for  -->
-  <!-- an existing servlet, or as a class name of a new servlet.            -->
-  <!-- This servlet is normally mapped to /servlet/*                        -->
-  <!-- This servlet support the following initParams:                       -->
-  <!--                                                                      -->
-  <!--  nonContextServlets       If false, the invoker can only load        -->
-  <!--                           servlets from the contexts classloader.    -->
-  <!--                           This is false by default and setting this  -->
-  <!--                           to true may have security implications.    -->
-  <!--                                                                      -->
-  <!--  verbose                  If true, log dynamic loads                 -->
-  <!--                                                                      -->
-  <!--  *                        All other parameters are copied to the     -->
-  <!--                           each dynamic servlet as init parameters    -->
+  <!-- Default session configuration                                        -->
   <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-  <!--
-    Uncomment for dynamic invocation <servlet> 
<servlet-name>invoker</servlet-name> 
<servlet-class>org.eclipse.jetty.servlet.Invoker</servlet-class> <init-param> 
<param-name>verbose</param-name>
-    <param-value>false</param-value> </init-param> <init-param> 
<param-name>nonContextServlets</param-name> <param-value>false</param-value> 
</init-param> <init-param>
-    <param-name>dynamicParam</param-name> <param-value>anyValue</param-value> 
</init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> 
<servlet-name>invoker</servlet-name>
-    <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
-  -->
-
-
-
-  <!-- ==================================================================== -->
   <session-config>
     <session-timeout>30</session-timeout>
   </session-config>
@@ -329,7 +188,7 @@
   <!-- ==================================================================== -->
   <!-- Default MIME mappings                                                -->
   <!-- The default MIME mappings are provided by the mime.properties        -->
-  <!-- resource in the org.eclipse.jetty.server.jar file.  Additional or 
modified  -->
+  <!-- resource in the jetty-http.jar file.  Additional or modified         -->
   <!-- mappings may be specified here                                       -->
   <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
   <!-- UNCOMMENT TO ACTIVATE
@@ -340,6 +199,8 @@
   -->
 
   <!-- ==================================================================== -->
+  <!-- Default welcome files                                                -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
   <welcome-file-list>
     <welcome-file>index.html</welcome-file>
     <welcome-file>index.htm</welcome-file>
@@ -347,6 +208,8 @@
   </welcome-file-list>
 
   <!-- ==================================================================== -->
+  <!-- Default locale encodings                                             -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
   <locale-encoding-mapping-list>
     <locale-encoding-mapping>
       <locale>ar</locale>
@@ -506,6 +369,9 @@
     </locale-encoding-mapping>
   </locale-encoding-mapping-list>
 
+  <!-- ==================================================================== -->
+  <!-- Disable TRACE method with security constraint                        -->
+  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
   <security-constraint>
     <web-resource-collection>
       <web-resource-name>Disable TRACE</web-resource-name>
@@ -514,6 +380,13 @@
     </web-resource-collection>
     <auth-constraint/>
   </security-constraint>
+  <security-constraint>
+    <web-resource-collection>
+      <web-resource-name>Enable everything but TRACE</web-resource-name>
+      <url-pattern>/</url-pattern>
+      <http-method-omission>TRACE</http-method-omission>
+    </web-resource-collection>
+  </security-constraint>
 
 </web-app>
 
diff --git a/solr/webapp/web/WEB-INF/web.xml b/solr/webapp/web/WEB-INF/web.xml
index 6732a6cb58a..2b5791b9b6a 100644
--- a/solr/webapp/web/WEB-INF/web.xml
+++ b/solr/webapp/web/WEB-INF/web.xml
@@ -15,12 +15,12 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee";
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee";
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
-         version="2.5"
-         metadata-complete="true"
->
+         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee 
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd";
+         version="6.0"
+         metadata-complete="true">
+
   <listener>
    
<listener-class>org.apache.solr.servlet.CoreContainerProvider</listener-class>
   </listener>

Reply via email to