在Spring Boot应用程序中配置HTTP会话超时

x33g5p2x  于2022-09-30 转载在 Spring  
字(0.9k)|赞(0)|评价(0)|浏览(884)

你可以通过两种方式为Spring Boot应用程序配置**HTTP会话超时。

###在application.properties中配置会话超时

最简单的方法是在你的application.properties中加入参数server.servlet.session.timeout。比如说

server.servlet.session.timeout=60s

还要注意的是,Tomcat不允许你将超时时间设置得少于60秒。

###以程序方式配置会话超时

假设我们想让我们的HttpSession只持续两分钟。为了实现这一点,我们可以在我们的WebConfiguration类中添加一个EmbeddedServletContainerCustomizer Bean,内容如下。

@Configuration
public class WebConfiguration {
  @Bean
  public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
      @Override
      public void customize(ConfigurableEmbeddedServletContainer container) {
        container.setSessionTimeout(2, TimeUnit.MINUTES);
      }
    };
  }
}

而这里是一个使用Java 8和lambda表达式的捷径。

public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
    return (ConfigurableEmbeddedServletContainer container) -> {
      container.setSessionTimeout(2, TimeUnit.MINUTES);
    };
  }

在应用程序启动期间,Spring Boot自动配置检测到EmbeddedServletContainerCustomizer,并调用customize(...)方法,传递对Servlet容器的引用。

相关文章

微信公众号

最新文章

更多