Spring Security OAuth2何时检查访问令牌到期?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Security OAuth2何时检查访问令牌到期?相关的知识,希望对你有一定的参考价值。
我正在调试生产环境中的一个场景,在这个场景中,我断断续续地看到来自资源服务器的意外HTTP 401响应。 我正在使用Spring Security OAuth2("老 "OAuth库;Spring Security 5.2.x之前及其OAuth2的实现)来处理请求并执行Authn。
我观察到的情况如下。
- 一个用户在登录的时候
x
(这里的时间以秒为单位)并获得一个访问令牌。 该访问令牌在时间x + 900
(15分钟有效期)。 - 在时间
x + 480
,用户向受保护的端点发出请求。 - 该请求需要很长时间才能完成,以至于当令牌过期时,它仍在被处理。 在时间
x + 900
,服务器返回一个HTTP 401
响应。
问题。
- Spring Security OAuth2真的是这样工作的吗? 具体来说,它是否会跟踪token的过期时间,在token过期时,如果请求仍在处理,则返回401? 还是在安全过滤器的另一端,在准备响应的时候?
- 有没有办法禁止这种行为,使token只在请求第一次被处理时被检查?
答案
我看了一下 spring-security-oauth2
而这不是它的工作方式。 令牌过期只检查一次,在处理请求的开始阶段。
我将我遇到的上述问题追溯到一个问题,即我们的服务器资源在一段时间内达到了最大值。 当资源(CPU;HTTP请求工作线程)变得可用时,服务器开始处理请求,但此时令牌已经过期。
以上是关于Spring Security OAuth2何时检查访问令牌到期?的主要内容,如果未能解决你的问题,请参考以下文章
Spring-Security OAuth2 设置 - 无法找到 oauth2 命名空间处理程序
Spring Security OAuth2 v5:NoSuchBeanDefinitionException:'org.springframework.security.oauth2.jwt.Jwt
针对授权标头的Spring Security OAuth2 CORS问题