mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Polish "Add support for configuring a custom SessionTimeout bean"
See gh-49883
This commit is contained in:
+1
@@ -27,6 +27,7 @@ spring:
|
||||
|
||||
For setting the timeout of the session you can use the configprop:spring.session.timeout[] property.
|
||||
If that property is not set with a servlet web application, the auto-configuration falls back to the value of configprop:server.servlet.session.timeout[].
|
||||
To provide the timeout programmatically, define a javadoc:org.springframework.boot.session.autoconfigure.SessionTimeout[] bean.
|
||||
|
||||
You can take control over Spring Session's configuration using `@Enable*HttpSession` (servlet) or `@EnableRedisWebSession` (reactive).
|
||||
This will cause the auto-configuration to back off.
|
||||
|
||||
+12
@@ -30,6 +30,7 @@ import org.springframework.boot.context.properties.source.InvalidConfigurationPr
|
||||
import org.springframework.boot.data.redis.autoconfigure.DataRedisAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.AbstractSessionAutoConfigurationTests;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.SessionTimeout;
|
||||
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
|
||||
import org.springframework.boot.test.context.runner.ContextConsumer;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
@@ -104,6 +105,17 @@ class SessionDataRedisAutoConfigurationTests extends AbstractSessionAutoConfigur
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultConfigWithCustomSessionTimeoutBean() {
|
||||
this.contextRunner.withBean(SessionTimeout.class, () -> () -> Duration.ofSeconds(4))
|
||||
.withPropertyValues("spring.data.redis.host=" + redis.getHost(),
|
||||
"spring.data.redis.port=" + redis.getFirstMappedPort(), "spring.session.timeout=1m")
|
||||
.run((context) -> {
|
||||
RedisSessionRepository repository = validateSessionRepository(context, RedisSessionRepository.class);
|
||||
assertThat(repository).hasFieldOrPropertyWithValue("defaultMaxInactiveInterval", Duration.ofSeconds(4));
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultRedisSessionStoreWithCustomizations() {
|
||||
this.contextRunner
|
||||
|
||||
+12
@@ -34,6 +34,7 @@ import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer;
|
||||
import org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.AbstractSessionAutoConfigurationTests;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.SessionTimeout;
|
||||
import org.springframework.boot.sql.init.DatabaseInitializationMode;
|
||||
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
@@ -108,6 +109,17 @@ class JdbcSessionAutoConfigurationTests extends AbstractSessionAutoConfiguration
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void customSessionTimeoutBean() {
|
||||
this.contextRunner.withBean(SessionTimeout.class, () -> () -> Duration.ofSeconds(4))
|
||||
.withPropertyValues("spring.session.timeout=1m")
|
||||
.run((context) -> {
|
||||
JdbcIndexedSessionRepository repository = validateSessionRepository(context,
|
||||
JdbcIndexedSessionRepository.class);
|
||||
assertThat(repository).hasFieldOrPropertyWithValue("defaultMaxInactiveInterval", Duration.ofSeconds(4));
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void customTableName() {
|
||||
this.contextRunner.withPropertyValues("spring.session.jdbc.table-name=FOO_BAR",
|
||||
|
||||
Reference in New Issue
Block a user