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;
}