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 26aef473bc8276e203a05e17c3b5a0a74aca05b7 Author: bonampak <[email protected]> AuthorDate: Thu Mar 12 15:08:44 2026 +0100 KNOX-3238: correcting AccessHandler and JWTValidatorFactory --- .../apache/knox/gateway/trace/AccessHandler.java | 29 ++++++++++++---------- .../gateway/websockets/JWTValidatorFactory.java | 6 ++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/trace/AccessHandler.java b/gateway-server/src/main/java/org/apache/knox/gateway/trace/AccessHandler.java index c21e5eb8a..47aa5c056 100644 --- a/gateway-server/src/main/java/org/apache/knox/gateway/trace/AccessHandler.java +++ b/gateway-server/src/main/java/org/apache/knox/gateway/trace/AccessHandler.java @@ -24,6 +24,8 @@ import org.eclipse.jetty.server.RequestLog; import org.eclipse.jetty.server.Response; import org.eclipse.jetty.util.component.AbstractLifeCycle; +import java.util.concurrent.TimeUnit; + public class AccessHandler extends AbstractLifeCycle implements RequestLog { private static final Logger log = LogManager.getLogger( "org.apache.knox.gateway.access" ); @@ -32,20 +34,21 @@ public class AccessHandler extends AbstractLifeCycle implements RequestLog { if( log.isTraceEnabled() ) { StringBuilder sb = new StringBuilder(); TraceUtil.appendCorrelationContext(sb); + long durationMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - request.getBeginNanoTime()); sb.append('|') - .append(request.getRemoteAddr()) - .append('|') - .append(request.getMethod()) - .append('|') - .append(request.getHttpURI()) - .append('|') - .append(request.getContentLength()) - .append('|') - .append(response.getStatus()) - .append('|') - .append(response.getContentCount()) - .append('|') - .append(System.currentTimeMillis() - request.getTimeStamp()); + .append(Request.getRemoteAddr(request)) // Static helper or request.getConnectionMetaData().getRemoteSocketAddress() + .append('|') + .append(request.getMethod()) + .append('|') + .append(request.getHttpURI().toString()) + .append('|') + .append(request.getLength()) // .getContentLength() is now .getLength() + .append('|') + .append(response.getStatus()) + .append('|') + .append(Response.getContentBytesWritten(response)) // Use static helper for bytes written + .append('|') + .append(durationMillis); log.trace(sb); } } diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/websockets/JWTValidatorFactory.java b/gateway-server/src/main/java/org/apache/knox/gateway/websockets/JWTValidatorFactory.java index eb33efca9..bf9740882 100644 --- a/gateway-server/src/main/java/org/apache/knox/gateway/websockets/JWTValidatorFactory.java +++ b/gateway-server/src/main/java/org/apache/knox/gateway/websockets/JWTValidatorFactory.java @@ -30,7 +30,7 @@ import org.apache.knox.gateway.services.topology.TopologyService; import org.apache.knox.gateway.topology.Service; import org.apache.knox.gateway.topology.Topology; import org.apache.knox.gateway.util.CertificateUtils; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.ee10.websocket.server.JettyServerUpgradeRequest; import jakarta.servlet.ServletException; import java.net.HttpCookie; import java.security.interfaces.RSAPublicKey; @@ -47,7 +47,7 @@ public class JWTValidatorFactory { public static final String SSO_VERIFICATION_PEM = "sso.token.verification.pem"; private static final JWTMessages jwtMessagesLog = MessagesFactory.get(JWTMessages.class); - public static JWTValidator create(ServletUpgradeRequest req, GatewayServices gatewayServices, + public static JWTValidator create(JettyServerUpgradeRequest req, GatewayServices gatewayServices, GatewayConfig gatewayConfig){ Map<String,String> params = getParams(gatewayServices); String cookieName = params.containsKey(KNOXSSO_COOKIE_NAME)? params.get(KNOXSSO_COOKIE_NAME):DEFAULT_SSO_COOKIE_NAME; @@ -97,7 +97,7 @@ public class JWTValidatorFactory { return params; } - private static JWT extractToken(ServletUpgradeRequest req, String cookieName){ + private static JWT extractToken(JettyServerUpgradeRequest req, String cookieName){ List<HttpCookie> ssoCookies = req.getCookies(); if (ssoCookies != null){ for (HttpCookie ssoCookie : ssoCookies) {
