【问题标题】:Spring Boot - Session timeout not working in 2.2.1 versionSpring Boot - 会话超时在 2.2.1 版本中不起作用
【发布时间】:2020-04-10 07:08:09
【问题描述】:

我正在使用 Angular 应用程序和 Spring Boot 服务。在观察到一段时间不活动后,我需要强制注销用户。所以我使用了以下属性,但它不起作用。

server.servlet.session.timeout=30s

有人可以帮忙吗?

【问题讨论】:

  • 你使用什么样的认证机制?
  • 什么不起作用?小于一分钟的会话超时通常不会像 servlet 容器每分钟超时会话一样工作(至少 tomcat 是这样)。您还使用 Angular,它是客户端并且不在服务器上执行任何操作,因此客户端上的任何活动都不知道服务器。如果您将此与基本身份验证相结合,那么对于您重新进行身份验证的每个请求,注销将不起作用(这就是 BASIC 身份验证的工作原理!)。
  • 感谢 M.Deinum。我知道会话超时需要在角度方面进行处理。如果有什么好的例子,请告诉我。

标签: angular spring spring-boot session timeout


【解决方案1】:

我假设您还没有将 url 设置为在会话失效后重定向。

见即:

http.sessionManagement().expiredUrl("/sessionExpired.html").invalidSessionUrl("/invalidSession.html");

查看link 以全面了解 Spring Security

根据超时server.servlet.session.timeout应该这样做。

【讨论】:

  • 我也添加了 expiredUrl。而且它不工作
猜你喜欢
  • 2020-03-23
  • 2020-11-14
  • 1970-01-01
  • 2015-05-21
  • 2014-12-05
  • 1970-01-01
  • 2016-09-15
  • 2018-08-27
  • 2016-01-21
相关资源
最近更新 更多