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