You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by bo...@apache.org on 2026/08/05 17:30:37 UTC

(knox) 08/49: KNOX-3238: refactor createWebAppContext

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

bonampak pushed a commit to branch feature/jakarta-jetty-upgrade
in repository https://gitbox.apache.org/repos/asf/knox.git

commit de9e421abaf6c1219aa336a16823c5fce4dc1cc4
Author: bonampak <bo...@apache.org>
AuthorDate: Tue Apr 21 19:14:12 2026 +0200

    KNOX-3238: refactor createWebAppContext
---
 .../main/java/org/apache/knox/gateway/GatewayServer.java | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
index b5b2de132..acd0dbcbf 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
@@ -76,8 +76,8 @@ import org.eclipse.jetty.server.handler.HandlerCollection;
 import org.eclipse.jetty.server.handler.RequestLogHandler;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.eclipse.jetty.util.thread.QueuedThreadPool;
-import org.eclipse.jetty.webapp.Configuration;
-import org.eclipse.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.ee10.webapp.Configuration;
+import org.eclipse.jetty.ee10.webapp.WebAppContext;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.exporter.ExplodedExporter;
 import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
@@ -892,8 +892,10 @@ public class GatewayServer {
     String contextPath;
     contextPath = "/" + Urls.trimLeadingAndTrailingSlashJoin( config.getGatewayPath(), topoName, warPath );
     context.setContextPath( contextPath );
-    SessionCookieConfig sessionCookieConfig = context.getServletContext().getSessionCookieConfig();
-    sessionCookieConfig.setName(KNOXSESSIONCOOKIENAME);
+    // In Jetty 12 the servlet ServletContext.getSessionCookieConfig() is not
+    // reachable until the context is started. The session cookie name is
+    // configured on the SessionHandler directly.
+    context.getSessionHandler().setSessionCookie(KNOXSESSIONCOOKIENAME);
     context.setWar( warFile.getAbsolutePath() );
     context.setAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE, topoName );
     context.setAttribute( "org.apache.knox.gateway.frontend.uri", getFrontendUri( context, config ) );
@@ -908,9 +910,11 @@ public class GatewayServer {
     context.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false");
     ClassLoader jspClassLoader = new URLClassLoader(new URL[0], this.getClass().getClassLoader());
     context.setClassLoader(jspClassLoader);
-    context.setMaxFormContentSize(config.getJettyMaxFormContentSize());
+    // NOTE: In Jetty 12 the max form content size and max form keys are
+    // configured server-wide via FormFields.MAX_LENGTH_ATTRIBUTE and
+    // FormFields.MAX_FIELDS_ATTRIBUTE (see createJetty()). The per-context
+    // setters were removed; server-level settings apply to all WebApps.
     log.setMaxFormContentSize(config.getJettyMaxFormContentSize());
-    context.setMaxFormKeys(config.getJettyMaxFormKeys());
     log.setMaxFormKeys(config.getJettyMaxFormKeys());
     return context;
   }