gpt4 book ai didi

spring-boot - Spring Boot session 超时

转载 作者:行者123 更新时间:2023-12-03 14:41:13 25 4
gpt4 key购买 nike

server.session-timeout似乎只适用于嵌入式 tomcat。

我放了一个日志语句来检查 session 最大间隔时间。手动将 war 文件部署到 tomcat 后,我​​意识到仍在使用默认 session 超时值(30 分钟)。

如何使用 spring-boot 设置 session 超时值(不是用于嵌入式 tomcat,而是用于独立应用程序服务器)?

最佳答案

[以防万一有人觉得这有用]

如果您使用的是 Spring Security,您可以扩展 SimpleUrlAuthenticationSuccessHandler类并在身份验证成功处理程序中设置 session 超时:

public class NoRedirectSavedRequestAwareAuthenticationSuccessHandler
extends SimpleUrlAuthenticationSuccessHandler {

public final Integer SESSION_TIMEOUT_IN_SECONDS = 60 * 30;

@Override
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response,
Authentication authentication)
throws ServletException, IOException {

request.getSession().setMaxInactiveInterval(SESSION_TIMEOUT_IN_SECONDS);

// ...
}


@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginProcessingUrl("/login")
.successHandler(new NoRedirectSavedRequestAwareAuthenticationSuccessHandler())
.failureHandler(new SimpleUrlAuthenticationFailureHandler())
.and().httpBasic();
}

}

关于spring-boot - Spring Boot session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28103852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com