From 38009311591cf9fcf4eb9d0dc0d36afd1b9c44ec Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Wed, 15 Jan 2025 12:02:24 +1100 Subject: [PATCH 1/7] Issue #12714 verify workername for Mongo usage --- .../mongodb/MongoSessionDataStoreTest.java | 89 +++++++++++++++++++ .../mongodb/MongoSessionDataStoreTest.java | 86 ++++++++++++++++++ .../nosql/mongodb/MongoSessionDataStore.java | 20 +++++ 3 files changed, 195 insertions(+) diff --git a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java index 6d4b173128b7..ac7af7ec2b6b 100644 --- a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java +++ b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java @@ -17,12 +17,16 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.function.Consumer; import org.eclipse.jetty.ee10.servlet.ServletContextHandler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.session.AbstractSessionDataStoreFactory; import org.eclipse.jetty.session.AbstractSessionDataStoreTest; +import org.eclipse.jetty.session.DefaultSessionCache; +import org.eclipse.jetty.session.DefaultSessionCacheFactory; import org.eclipse.jetty.session.DefaultSessionIdManager; +import org.eclipse.jetty.session.ManagedSession; import org.eclipse.jetty.session.SessionContext; import org.eclipse.jetty.session.SessionData; import org.eclipse.jetty.session.SessionDataStore; @@ -37,6 +41,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.testcontainers.shaded.org.hamcrest.Matchers.not; /** * MongoSessionDataStoreTest @@ -128,6 +134,89 @@ public boolean checkSessionPersisted(SessionData data) throws Exception } } + @Test + public void testBadWorkerName() throws Exception + { + Server server = new Server(); + DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); + idMgr.setWorkerName("b-a-d"); + server.addBean(idMgr); + + //create the SessionDataStore + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/ctx"); + + server.setHandler(context); + context.getSessionHandler().setSessionIdManager(idMgr); + + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); + cacheFactory.setSaveOnCreate(true); + server.addBean(cacheFactory); + + SessionDataStoreFactory factory = createSessionDataStoreFactory(); + server.addBean(factory); + + assertThrows(IllegalStateException.class, () -> + { + server.start(); + }); + } + + @Test + public void testGoodWorkerName() throws Exception + { + Server server = new Server(); + DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); + idMgr.setWorkerName("NODE99"); + server.addBean(idMgr); + + //create the SessionDataStore + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/ctx"); + + server.setHandler(context); + context.getSessionHandler().setSessionIdManager(idMgr); + + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); + cacheFactory.setSaveOnCreate(true); + server.addBean(cacheFactory); + + SessionDataStoreFactory factory = createSessionDataStoreFactory(); + server.addBean(factory); + + not(assertThrows(IllegalStateException.class, () -> + { + server.start(); + })); + } + + @Test + public void testDefaultWorkerName() throws Exception + { + Server server = new Server(); + DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); + server.addBean(idMgr); + + //create the SessionDataStore + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/ctx"); + + server.setHandler(context); + context.getSessionHandler().setSessionIdManager(idMgr); + + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); + cacheFactory.setSaveOnCreate(true); + server.addBean(cacheFactory); + + SessionDataStoreFactory factory = createSessionDataStoreFactory(); + server.addBean(factory); + + not(assertThrows(IllegalStateException.class, () -> + { + server.start(); + })); + } + /** * Test that a session stored in the legacy attribute * format can be read. diff --git a/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java b/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java index a8e2d86ff296..08834334839f 100644 --- a/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java +++ b/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java @@ -22,6 +22,7 @@ import org.eclipse.jetty.server.Server; import org.eclipse.jetty.session.AbstractSessionDataStoreFactory; import org.eclipse.jetty.session.AbstractSessionDataStoreTest; +import org.eclipse.jetty.session.DefaultSessionCacheFactory; import org.eclipse.jetty.session.DefaultSessionIdManager; import org.eclipse.jetty.session.SessionContext; import org.eclipse.jetty.session.SessionData; @@ -34,8 +35,10 @@ import org.junit.jupiter.api.Test; import org.testcontainers.junit.jupiter.Testcontainers; +import static org.hamcrest.Matchers.not; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * MongoSessionDataStoreTest @@ -114,6 +117,89 @@ public boolean checkSessionPersisted(SessionData data) throws Exception } } + @Test + public void testBadWorkerName() throws Exception + { + Server server = new Server(); + DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); + idMgr.setWorkerName("b-a-d"); + server.addBean(idMgr); + + //create the SessionDataStore + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/ctx"); + + server.setHandler(context); + context.getSessionHandler().setSessionIdManager(idMgr); + + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); + cacheFactory.setSaveOnCreate(true); + server.addBean(cacheFactory); + + SessionDataStoreFactory factory = createSessionDataStoreFactory(); + server.addBean(factory); + + assertThrows(IllegalStateException.class, () -> + { + server.start(); + }); + } + + @Test + public void testGoodWorkerName() throws Exception + { + Server server = new Server(); + DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); + idMgr.setWorkerName("NODE99"); + server.addBean(idMgr); + + //create the SessionDataStore + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/ctx"); + + server.setHandler(context); + context.getSessionHandler().setSessionIdManager(idMgr); + + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); + cacheFactory.setSaveOnCreate(true); + server.addBean(cacheFactory); + + SessionDataStoreFactory factory = createSessionDataStoreFactory(); + server.addBean(factory); + + not(assertThrows(IllegalStateException.class, () -> + { + server.start(); + })); + } + + @Test + public void testDefaultWorkerName() throws Exception + { + Server server = new Server(); + DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); + server.addBean(idMgr); + + //create the SessionDataStore + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/ctx"); + + server.setHandler(context); + context.getSessionHandler().setSessionIdManager(idMgr); + + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); + cacheFactory.setSaveOnCreate(true); + server.addBean(cacheFactory); + + SessionDataStoreFactory factory = createSessionDataStoreFactory(); + server.addBean(factory); + + not(assertThrows(IllegalStateException.class, () -> + { + server.start(); + })); + } + /** * Test that a session stored in the legacy attribute * format can be read. diff --git a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java index 9d00ef0cdc20..a74d6d4d9ddf 100644 --- a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java +++ b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java @@ -42,6 +42,7 @@ import org.eclipse.jetty.session.SessionContext; import org.eclipse.jetty.session.SessionData; import org.eclipse.jetty.session.UnreadableSessionDataException; +import org.eclipse.jetty.util.SearchPattern; import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedObject; @@ -159,6 +160,8 @@ public class MongoSessionDataStore extends NoSqlSessionDataStore */ private DBObject _version1; + private SearchPattern _workerNamePattern = SearchPattern.compile("[0-9][a-zA-Z]*"); + /** * Access to MongoDB */ @@ -175,6 +178,23 @@ public MongoCollection getDBCollection() return _dbSessions; } + @Override + protected void doStart() throws Exception + { + checkWorkerName(); + super.doStart(); + } + + private void checkWorkerName() throws IllegalStateException + { + if (_context == null || StringUtil.isEmpty(_context.getWorkerName())) + return; + + byte[] bytes = _context.getWorkerName().getBytes(); + if (_workerNamePattern.match(bytes, 0, bytes.length) < 0) + throw new IllegalStateException("Invalid worker name: " + _context.getWorkerName()); + } + @Override public SessionData doLoad(String id) throws Exception { From 03e632ca46c1f41a69d71b316eb368f586f20195 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Wed, 15 Jan 2025 15:27:05 +1100 Subject: [PATCH 2/7] Use Pattern class --- .../jetty/nosql/mongodb/MongoSessionDataStore.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java index a74d6d4d9ddf..d4a1950696bd 100644 --- a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java +++ b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java @@ -16,20 +16,18 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import com.mongodb.BasicDBObject; -import com.mongodb.BasicDBObjectBuilder; import com.mongodb.DBObject; import com.mongodb.MongoException; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; -import com.mongodb.client.model.IndexModel; import com.mongodb.client.model.IndexOptions; import com.mongodb.client.model.Indexes; import com.mongodb.client.model.Projections; @@ -42,7 +40,6 @@ import org.eclipse.jetty.session.SessionContext; import org.eclipse.jetty.session.SessionData; import org.eclipse.jetty.session.UnreadableSessionDataException; -import org.eclipse.jetty.util.SearchPattern; import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedObject; @@ -160,7 +157,7 @@ public class MongoSessionDataStore extends NoSqlSessionDataStore */ private DBObject _version1; - private SearchPattern _workerNamePattern = SearchPattern.compile("[0-9][a-zA-Z]*"); + private Pattern _workerNamePattern = Pattern.compile("[0-9a-zA-Z]*"); /** * Access to MongoDB @@ -190,8 +187,7 @@ private void checkWorkerName() throws IllegalStateException if (_context == null || StringUtil.isEmpty(_context.getWorkerName())) return; - byte[] bytes = _context.getWorkerName().getBytes(); - if (_workerNamePattern.match(bytes, 0, bytes.length) < 0) + if (!_workerNamePattern.matcher(_context.getWorkerName()).matches()) throw new IllegalStateException("Invalid worker name: " + _context.getWorkerName()); } From ebebe4c15c87cab899e7470a9cd9d4a45d24067a Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Wed, 15 Jan 2025 15:27:36 +1100 Subject: [PATCH 3/7] Make final --- .../org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java index d4a1950696bd..7c66429a9a26 100644 --- a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java +++ b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java @@ -157,7 +157,7 @@ public class MongoSessionDataStore extends NoSqlSessionDataStore */ private DBObject _version1; - private Pattern _workerNamePattern = Pattern.compile("[0-9a-zA-Z]*"); + private final Pattern _workerNamePattern = Pattern.compile("[0-9a-zA-Z]*"); /** * Access to MongoDB From fbcb111cbbf4522a9c56b276e97407ee524db2a9 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Wed, 15 Jan 2025 16:06:38 +1100 Subject: [PATCH 4/7] Use different test to assert nothing thrown. --- .../mongodb/MongoSessionDataStoreTest.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java index ac7af7ec2b6b..0bccf09cdd58 100644 --- a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java +++ b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java @@ -17,16 +17,13 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import java.util.function.Consumer; import org.eclipse.jetty.ee10.servlet.ServletContextHandler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.session.AbstractSessionDataStoreFactory; import org.eclipse.jetty.session.AbstractSessionDataStoreTest; -import org.eclipse.jetty.session.DefaultSessionCache; import org.eclipse.jetty.session.DefaultSessionCacheFactory; import org.eclipse.jetty.session.DefaultSessionIdManager; -import org.eclipse.jetty.session.ManagedSession; import org.eclipse.jetty.session.SessionContext; import org.eclipse.jetty.session.SessionData; import org.eclipse.jetty.session.SessionDataStore; @@ -39,10 +36,10 @@ import org.junit.jupiter.api.Test; import org.testcontainers.junit.jupiter.Testcontainers; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.testcontainers.shaded.org.hamcrest.Matchers.not; /** * MongoSessionDataStoreTest @@ -184,10 +181,8 @@ public void testGoodWorkerName() throws Exception SessionDataStoreFactory factory = createSessionDataStoreFactory(); server.addBean(factory); - not(assertThrows(IllegalStateException.class, () -> - { - server.start(); - })); + assertDoesNotThrow(() -> + server.start()); } @Test @@ -211,10 +206,8 @@ public void testDefaultWorkerName() throws Exception SessionDataStoreFactory factory = createSessionDataStoreFactory(); server.addBean(factory); - not(assertThrows(IllegalStateException.class, () -> - { - server.start(); - })); + assertDoesNotThrow(() -> + server.start()); } /** From ec308794ffd56bb451214e431c27588109f4cead Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Fri, 17 Jan 2025 09:42:38 +1100 Subject: [PATCH 5/7] Mods after reviews: add _ as valid char; make static. --- .../ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java | 2 +- .../org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java index 0bccf09cdd58..9bc5efe2df3a 100644 --- a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java +++ b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-sessions/jetty-ee10-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee10/session/nosql/mongodb/MongoSessionDataStoreTest.java @@ -164,7 +164,7 @@ public void testGoodWorkerName() throws Exception { Server server = new Server(); DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); - idMgr.setWorkerName("NODE99"); + idMgr.setWorkerName("NODE_99"); server.addBean(idMgr); //create the SessionDataStore diff --git a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java index 7c66429a9a26..041658dde8cf 100644 --- a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java +++ b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java @@ -157,7 +157,7 @@ public class MongoSessionDataStore extends NoSqlSessionDataStore */ private DBObject _version1; - private final Pattern _workerNamePattern = Pattern.compile("[0-9a-zA-Z]*"); + private static final Pattern _workerNamePattern = Pattern.compile("[_0-9a-zA-Z]*"); /** * Access to MongoDB From 7f27d96644ead6abb6b7ecda331b9fcf54e815a2 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Fri, 17 Jan 2025 09:53:17 +1100 Subject: [PATCH 6/7] Mod after review: add correct pattern to ISE as info --- .../org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java index 041658dde8cf..f7da5e3bf987 100644 --- a/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java +++ b/jetty-integrations/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/mongodb/MongoSessionDataStore.java @@ -188,7 +188,7 @@ private void checkWorkerName() throws IllegalStateException return; if (!_workerNamePattern.matcher(_context.getWorkerName()).matches()) - throw new IllegalStateException("Invalid worker name: " + _context.getWorkerName()); + throw new IllegalStateException("Worker name " + _context.getWorkerName() + " does not match pattern " + _workerNamePattern.pattern()); } @Override From 235fa8f1746769ca7f511359b023b6e2e12b3540 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Sat, 18 Jan 2025 10:45:07 +1100 Subject: [PATCH 7/7] Fix ee9 test --- .../nosql/mongodb/MongoSessionDataStoreTest.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java b/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java index 08834334839f..e4eced18b79c 100644 --- a/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java +++ b/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-sessions/jetty-ee9-test-sessions-mongodb/src/test/java/org/eclipse/jetty/ee9/session/nosql/mongodb/MongoSessionDataStoreTest.java @@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test; import org.testcontainers.junit.jupiter.Testcontainers; -import static org.hamcrest.Matchers.not; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -150,7 +150,7 @@ public void testGoodWorkerName() throws Exception { Server server = new Server(); DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); - idMgr.setWorkerName("NODE99"); + idMgr.setWorkerName("NODE_99"); server.addBean(idMgr); //create the SessionDataStore @@ -167,10 +167,8 @@ public void testGoodWorkerName() throws Exception SessionDataStoreFactory factory = createSessionDataStoreFactory(); server.addBean(factory); - not(assertThrows(IllegalStateException.class, () -> - { - server.start(); - })); + assertDoesNotThrow(() -> + server.start()); } @Test @@ -194,10 +192,8 @@ public void testDefaultWorkerName() throws Exception SessionDataStoreFactory factory = createSessionDataStoreFactory(); server.addBean(factory); - not(assertThrows(IllegalStateException.class, () -> - { - server.start(); - })); + assertDoesNotThrow(() -> + server.start()); } /**