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 4856dab0e5ca1d7ae529886a6d19202e17e95a11
Author: bonampak <[email protected]>
AuthorDate: Fri Apr 24 04:28:16 2026 +0200

    KNOX-3238: correct JWTValidatorFactory, GatewayPortMappingConfigTest, 
KnoxCacheManager and KnoxLdapRealm.
---
 .../knox/gateway/shirorealm/KnoxCacheManager.java  |  2 +-
 .../knox/gateway/shirorealm/KnoxLdapRealm.java     |  2 +-
 .../knox/gateway/GatewayPortMappingConfigTest.java |  4 +--
 .../knox/gateway/websockets/JWTValidatorTest.java  | 35 ++++++++++++----------
 4 files changed, 23 insertions(+), 20 deletions(-)

diff --git 
a/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxCacheManager.java
 
b/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxCacheManager.java
index 0d39fdf70..00ca71f1d 100644
--- 
a/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxCacheManager.java
+++ 
b/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxCacheManager.java
@@ -151,7 +151,7 @@ public class KnoxCacheManager implements 
org.apache.shiro.cache.CacheManager, In
    * @param xmlConfiguration the XML configuration of the cache manager
    */
   private void resolveLockConflict(XmlConfiguration xmlConfiguration) {
-    Optional<ServiceCreationConfiguration<?>> serviceConfig = 
xmlConfiguration.getServiceCreationConfigurations().stream()
+    Optional<ServiceCreationConfiguration<?,?>> serviceConfig = 
xmlConfiguration.getServiceCreationConfigurations().stream()
             .filter(service -> service instanceof 
CacheManagerPersistenceConfiguration).findFirst();
 
     if (serviceConfig.isPresent()) {
diff --git 
a/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxLdapRealm.java
 
b/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxLdapRealm.java
index c4562ae16..8b9f78d1a 100644
--- 
a/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxLdapRealm.java
+++ 
b/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/shirorealm/KnoxLdapRealm.java
@@ -40,12 +40,12 @@ import org.apache.shiro.crypto.hash.DefaultHashService;
 import org.apache.shiro.crypto.hash.Hash;
 import org.apache.shiro.crypto.hash.HashRequest;
 import org.apache.shiro.crypto.hash.HashService;
-import org.apache.shiro.lang.util.StringUtils;
 import org.apache.shiro.realm.ldap.DefaultLdapRealm;
 import org.apache.shiro.realm.ldap.LdapContextFactory;
 import org.apache.shiro.realm.ldap.LdapUtils;
 import org.apache.shiro.subject.MutablePrincipalCollection;
 import org.apache.shiro.subject.PrincipalCollection;
+import org.apache.shiro.util.StringUtils;
 
 import javax.naming.AuthenticationException;
 import javax.naming.Context;
diff --git 
a/gateway-server/src/test/java/org/apache/knox/gateway/GatewayPortMappingConfigTest.java
 
b/gateway-server/src/test/java/org/apache/knox/gateway/GatewayPortMappingConfigTest.java
index 94f5fa6bb..678a2f91e 100644
--- 
a/gateway-server/src/test/java/org/apache/knox/gateway/GatewayPortMappingConfigTest.java
+++ 
b/gateway-server/src/test/java/org/apache/knox/gateway/GatewayPortMappingConfigTest.java
@@ -21,7 +21,7 @@ import org.easymock.EasyMock;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.handler.ContextHandler;
-import org.eclipse.jetty.server.handler.HandlerCollection;
+import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Rule;
@@ -185,7 +185,7 @@ public class GatewayPortMappingConfigTest {
     gatewayServer.addConnector(connector);
 
     // workaround so we can add our handler later at runtime
-    HandlerCollection handlers = new HandlerCollection(true);
+    ContextHandlerCollection handlers = new ContextHandlerCollection(true);
 
     // add some initial handlers
     ContextHandler context = new ContextHandler();
diff --git 
a/gateway-server/src/test/java/org/apache/knox/gateway/websockets/JWTValidatorTest.java
 
b/gateway-server/src/test/java/org/apache/knox/gateway/websockets/JWTValidatorTest.java
index e79bea6d7..9353b4290 100644
--- 
a/gateway-server/src/test/java/org/apache/knox/gateway/websockets/JWTValidatorTest.java
+++ 
b/gateway-server/src/test/java/org/apache/knox/gateway/websockets/JWTValidatorTest.java
@@ -35,7 +35,9 @@ import org.apache.knox.gateway.topology.Service;
 import org.apache.knox.gateway.topology.Topology;
 import org.apache.knox.gateway.util.X509CertificateUtil;
 import org.easymock.EasyMock;
-import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest;
+import org.eclipse.jetty.http.HttpFields;
+import org.eclipse.jetty.http.HttpHeader;
+import org.eclipse.jetty.websocket.server.ServerUpgradeRequest;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -44,7 +46,6 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
 import java.lang.reflect.Field;
-import java.net.HttpCookie;
 import java.net.InetAddress;
 import java.nio.charset.StandardCharsets;
 import java.security.KeyPair;
@@ -112,11 +113,13 @@ public class JWTValidatorTest {
         }
     }
 
-    private void setTokenOnRequest(ServletUpgradeRequest request, SignedJWT 
jwt){
-        HttpCookie cookie1 = new HttpCookie("hadoop-jwt", "garbage");
-        HttpCookie cookie2 = new HttpCookie("hadoop-jwt", "ljm" + 
jwt.serialize());// garbled jwt
-        HttpCookie cookie3 = new HttpCookie("hadoop-jwt", jwt.serialize());
-        EasyMock.expect(request.getCookies()).andReturn(Arrays.asList(cookie1, 
cookie2, cookie3)).anyTimes();
+    private void setTokenOnRequest(ServerUpgradeRequest request, SignedJWT 
jwt){
+        HttpFields mockedHeaders = HttpFields.build()
+        .add(HttpHeader.COOKIE, "hadoop-jwt=garbage")
+        .add(HttpHeader.COOKIE, "hadoop-jwt=ljm" + jwt.serialize())
+        .add(HttpHeader.COOKIE, "hadoop-jwt=" + jwt.serialize())
+        .asImmutable();
+        
EasyMock.expect(request.getHeaders()).andReturn(mockedHeaders).anyTimes();
     }
 
     private static SignedJWT getJWT(final String issuer,
@@ -190,7 +193,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, 
validJWT.getHeader().getAlgorithm().getName());
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, validJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
@@ -211,8 +214,8 @@ public class JWTValidatorTest {
         thrown.expect(RuntimeException.class);
         thrown.expectMessage("No Valid JWT found");
         setUpParams(new HashMap<>());
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
-        EasyMock.expect(request.getCookies()).andReturn(null).anyTimes();
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
+        
EasyMock.expect(request.getHeaders()).andReturn(HttpFields.EMPTY).anyTimes();
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
         EasyMock.expect(authorityService.verifyToken(jwtValidator.getToken(), 
publicKey)).andReturn(true).anyTimes();
@@ -233,7 +236,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, 
unexpectedIssuerJWT.getHeader().getAlgorithm().getName());
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, unexpectedIssuerJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
@@ -255,7 +258,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, 
expiredJWT.getHeader().getAlgorithm().getName());
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, expiredJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
@@ -277,7 +280,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, 
expiredJWT.getHeader().getAlgorithm().getName());
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, expiredJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
@@ -299,7 +302,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, JWSAlgorithm.RS512.getName() );
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, unexpectedSigAlgJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
@@ -320,7 +323,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, 
validJWT.getHeader().getAlgorithm().getName());
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, validJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);
@@ -342,7 +345,7 @@ public class JWTValidatorTest {
         params.put(JWT_EXPECTED_ISSUER, JWT_TEST_ISSUER);
         params.put(JWT_EXPECTED_SIGALG, 
parsableJWT.getHeader().getAlgorithm().getName());
         setUpParams(params);
-        ServletUpgradeRequest request = 
EasyMock.createNiceMock(ServletUpgradeRequest.class);
+        ServerUpgradeRequest request = 
EasyMock.createNiceMock(ServerUpgradeRequest.class);
         setTokenOnRequest(request, parsableJWT);
         EasyMock.replay(request);
         JWTValidator jwtValidator = JWTValidatorFactory.create(request, 
gatewayServices, gatewayConfig);

Reply via email to