SessionRegistryImpl is now aware of SessionIdChangedEvent

This commit is contained in:
Venkata Jaswanth
2018-06-14 01:36:07 +10:00
committed by Eleftheria Stein
parent ae532c080c
commit 5fc6414377
7 changed files with 164 additions and 5 deletions

View File

@@ -72,6 +72,11 @@ public class HttpSessionEventPublisherTests {
assertThat(listener.getDestroyedEvent()).isNotNull();
assertThat(listener.getCreatedEvent()).isNull();
assertThat(listener.getDestroyedEvent().getSession()).isEqualTo(session);
publisher.sessionIdChanged(event, "oldSessionId");
assertThat(listener.getSessionIdChangedEvent()).isNotNull();
assertThat(listener.getSessionIdChangedEvent().getOldSessionId()).isEqualTo("oldSessionId");
listener.setSessionIdChangedEvent(null);
}
@Test
@@ -108,6 +113,11 @@ public class HttpSessionEventPublisherTests {
assertThat(listener.getDestroyedEvent()).isNotNull();
assertThat(listener.getCreatedEvent()).isNull();
assertThat(listener.getDestroyedEvent().getSession()).isEqualTo(session);
publisher.sessionIdChanged(event, "oldSessionId");
assertThat(listener.getSessionIdChangedEvent()).isNotNull();
assertThat(listener.getSessionIdChangedEvent().getOldSessionId()).isEqualTo("oldSessionId");
listener.setSessionIdChangedEvent(null);
}
// SEC-2599
@@ -131,4 +141,14 @@ public class HttpSessionEventPublisherTests {
publisher.sessionDestroyed(event);
}
@Test(expected = IllegalStateException.class)
public void sessionIdChangeNullApplicationContext() {
HttpSessionEventPublisher publisher = new HttpSessionEventPublisher();
MockServletContext servletContext = new MockServletContext();
MockHttpSession session = new MockHttpSession(servletContext);
HttpSessionEvent event = new HttpSessionEvent(session);
publisher.sessionIdChanged(event, "oldSessionId");
}
}

View File

@@ -32,6 +32,7 @@ public class MockApplicationListener implements ApplicationListener<ApplicationE
private HttpSessionCreatedEvent createdEvent;
private HttpSessionDestroyedEvent destroyedEvent;
private HttpSessionIdChangedEvent sessionIdChangedEvent;
// ~ Methods
// ========================================================================================================
@@ -51,6 +52,9 @@ public class MockApplicationListener implements ApplicationListener<ApplicationE
else if (event instanceof HttpSessionDestroyedEvent) {
destroyedEvent = (HttpSessionDestroyedEvent) event;
}
else if (event instanceof HttpSessionIdChangedEvent) {
sessionIdChangedEvent = (HttpSessionIdChangedEvent) event;
}
}
public void setCreatedEvent(HttpSessionCreatedEvent createdEvent) {
@@ -60,4 +64,12 @@ public class MockApplicationListener implements ApplicationListener<ApplicationE
public void setDestroyedEvent(HttpSessionDestroyedEvent destroyedEvent) {
this.destroyedEvent = destroyedEvent;
}
public void setSessionIdChangedEvent(HttpSessionIdChangedEvent sessionIdChangedEvent) {
this.sessionIdChangedEvent = sessionIdChangedEvent;
}
public HttpSessionIdChangedEvent getSessionIdChangedEvent() {
return sessionIdChangedEvent;
}
}