Spring Boot 安全性避免特定用户会话过期
Posted
技术标签:
【中文标题】Spring Boot 安全性避免特定用户会话过期【英文标题】:Spring boot security avoid specific user session expire 【发布时间】:2018-01-16 08:16:29 【问题描述】:大家好,我在 Apache Tomcat 服务器上安装了我的 Spring Boot 应用程序,它运行良好。但现在我需要避免特定用户的会话过期。我怎么能那样做?我一直在寻找方法,发现处理程序拦截器可能对会话管理有用,但我不确定。 提前致谢!
【问题讨论】:
为什么要避免会话过期? 这是一个客户要求。他们希望避免特定用户的会话过期。 也许你正在寻找***.com/questions/2504590/… OR ***.com/questions/24561915/… OR baeldung.com/spring-security-session 不管它是否是一项要求,为什么希望用户会话不过期?如果该用户有任何权力,那就是一个重大安全漏洞。 直到你解释为什么。这具有XY problem 的症状。 【参考方案1】:恐怕没有简单的方法可以做到这一点。过期超时对于您的应用程序的所有用户都是常见的,并由应用程序服务器控制。为了为不同的用户设置不同的超时时间,您应该:
-
在本地服务器会话上实现一些会话包装器;
将本机服务器会话的过期超时设置为您将给予其中一个用户会话的最长时间;
自行管理会话包装器的过期超时。
编辑:在我看来,解决此问题的最佳方法是重新考虑客户的要求(具有管理员权限的永久用户对您的应用程序来说是个坏主意)。无论如何,自定义应用程序的安全相关部分总是有风险的,您应该真正知道自己在做什么。
【讨论】:
我个人建议不要回答,直到我们对基本原理有了更深入的了解。你的建议是合理的,我想说的是,但“为什么”这个更深层次的问题仍然存在。 @Makoto 我同意,这是一个奇怪的要求,可能导致应用程序安全性受到破坏。我将分别编辑我的答案。以上是关于Spring Boot 安全性避免特定用户会话过期的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 安全性 - 允许使用过期 JWT 令牌的用户请求
spring boot - undertow https 会话不会过期或停止 ssl 握手
Java中设置Session过期时间(Spring Boot)