Clarify behavior of WebSession#save()
+ minor update to the InMemoryWebSession to match the defined behavior. Issue: SPR-17051
This commit is contained in:
@@ -83,6 +83,7 @@ public class InMemoryWebSessionStoreTests {
|
||||
assertNotNull(session1);
|
||||
String id = session1.getId();
|
||||
Instant time1 = session1.getLastAccessTime();
|
||||
session1.start();
|
||||
session1.save().block();
|
||||
|
||||
// Fast-forward a few seconds
|
||||
@@ -95,6 +96,34 @@ public class InMemoryWebSessionStoreTests {
|
||||
assertTrue(time1.isBefore(time2));
|
||||
}
|
||||
|
||||
@Test // SPR-17051
|
||||
public void sessionInvalidatedBeforeSave() {
|
||||
// Request 1 creates session
|
||||
WebSession session1 = this.store.createWebSession().block();
|
||||
assertNotNull(session1);
|
||||
String id = session1.getId();
|
||||
session1.start();
|
||||
session1.save().block();
|
||||
|
||||
// Request 2 retrieves session
|
||||
WebSession session2 = this.store.retrieveSession(id).block();
|
||||
assertNotNull(session2);
|
||||
assertSame(session1, session2);
|
||||
|
||||
// Request 3 retrieves and invalidates
|
||||
WebSession session3 = this.store.retrieveSession(id).block();
|
||||
assertNotNull(session3);
|
||||
assertSame(session1, session3);
|
||||
session3.invalidate().block();
|
||||
|
||||
// Request 2 saves session after invalidated
|
||||
session2.save().block();
|
||||
|
||||
// Session should not be present
|
||||
WebSession session4 = this.store.retrieveSession(id).block();
|
||||
assertNull(session4);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void expirationCheckPeriod() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user