mirror of
https://github.com/spring-projects/spring-session.git
synced 2024-10-23 06:34:33 +08:00
Merge branch '3.3.x'
Closes gh-3166
This commit is contained in:
commit
89920ab87c
@ -92,9 +92,7 @@ public class MongoIndexedSessionRepository
|
||||
@Override
|
||||
public MongoSession createSession() {
|
||||
|
||||
MongoSession session = new MongoSession(this.sessionIdGenerator);
|
||||
|
||||
session.setMaxInactiveInterval(this.defaultMaxInactiveInterval);
|
||||
MongoSession session = new MongoSession(this.sessionIdGenerator, this.defaultMaxInactiveInterval.toSeconds());
|
||||
|
||||
publishEvent(new SessionCreatedEvent(this, session));
|
||||
|
||||
|
@ -100,7 +100,8 @@ public class ReactiveMongoSessionRepository
|
||||
public Mono<MongoSession> createSession() {
|
||||
// @formatter:off
|
||||
return Mono.fromSupplier(() -> this.sessionIdGenerator.generate())
|
||||
.map(MongoSession::new)
|
||||
.zipWith(Mono.just(this.defaultMaxInactiveInterval.toSeconds()))
|
||||
.map((tuple) -> new MongoSession(tuple.getT1(), tuple.getT2()))
|
||||
.doOnNext((mongoSession) -> mongoSession.setMaxInactiveInterval(this.defaultMaxInactiveInterval))
|
||||
.doOnNext(
|
||||
(mongoSession) -> mongoSession.setSessionIdGenerator(this.sessionIdGenerator))
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.session.data.mongo;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
@ -254,6 +256,14 @@ class MongoIndexedSessionRepositoryTests {
|
||||
assertThat(newSessionId).isEqualTo("456");
|
||||
}
|
||||
|
||||
@Test
|
||||
void createSessionWhenMaxInactiveIntervalSetThenUse() {
|
||||
this.repository.setDefaultMaxInactiveInterval(Duration.ofSeconds(60));
|
||||
MongoSession session = this.repository.createSession();
|
||||
Instant now = Instant.now();
|
||||
assertThat(session.getExpireAt()).isBetween(now.plusSeconds(59), Instant.now().plusSeconds(61));
|
||||
}
|
||||
|
||||
static class FixedSessionIdGenerator implements SessionIdGenerator {
|
||||
|
||||
private final String id;
|
||||
|
@ -17,6 +17,7 @@
|
||||
package org.springframework.session.data.mongo;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.mongodb.BasicDBObject;
|
||||
@ -259,4 +260,12 @@ class ReactiveMongoSessionRepositoryTests {
|
||||
}).verifyComplete();
|
||||
}
|
||||
|
||||
@Test
|
||||
void createSessionWhenMaxInactiveIntervalSetThenUse() {
|
||||
this.repository.setDefaultMaxInactiveInterval(Duration.ofSeconds(60));
|
||||
MongoSession session = this.repository.createSession().block();
|
||||
Instant now = Instant.now();
|
||||
assertThat(session.getExpireAt()).isBetween(now.plusSeconds(59), Instant.now().plusSeconds(61));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user