SessionRepositoryFilter sets maxInactiveIntervalInSeconds on create
Fixes gh-324
This commit is contained in:
@@ -290,6 +290,7 @@ public class SessionRepositoryFilter<S extends ExpiringSession> extends OncePerR
|
||||
return null;
|
||||
}
|
||||
S session = sessionRepository.createSession();
|
||||
session.setLastAccessedTime(System.currentTimeMillis());
|
||||
currentSession = new HttpSessionWrapper(session, getServletContext());
|
||||
setCurrentSession(currentSession);
|
||||
return currentSession;
|
||||
|
||||
@@ -33,6 +33,7 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletContext;
|
||||
@@ -56,6 +57,7 @@ import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
import org.springframework.mock.web.MockServletContext;
|
||||
import org.springframework.session.ExpiringSession;
|
||||
import org.springframework.session.MapSession;
|
||||
import org.springframework.session.MapSessionRepository;
|
||||
import org.springframework.session.Session;
|
||||
import org.springframework.session.SessionRepository;
|
||||
@@ -114,6 +116,26 @@ public class SessionRepositoryFilterTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doFilterCreateSetsLastAccessedTime() throws Exception {
|
||||
MapSession session = new MapSession();
|
||||
session.setLastAccessedTime(0L);
|
||||
this.sessionRepository = spy(this.sessionRepository);
|
||||
when(this.sessionRepository.createSession()).thenReturn(session);
|
||||
this.filter = new SessionRepositoryFilter<ExpiringSession>(sessionRepository);
|
||||
|
||||
doFilter(new DoInFilter() {
|
||||
@Override
|
||||
public void doFilter(HttpServletRequest wrappedRequest) {
|
||||
HttpSession session = wrappedRequest.getSession();
|
||||
long now = System.currentTimeMillis();
|
||||
long fiveSecondsAgo = now - TimeUnit.SECONDS.toMillis(5);
|
||||
assertThat(session.getLastAccessedTime()).isLessThanOrEqualTo(now);
|
||||
assertThat(session.getLastAccessedTime()).isGreaterThanOrEqualTo(fiveSecondsAgo);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doFilterLastAccessedTime() throws Exception {
|
||||
final String ACCESS_ATTR = "create";
|
||||
|
||||
Reference in New Issue
Block a user