我正在调试生产环境中的一个场景,在这个场景中,我断断续续地看到来自资源服务器的意外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
而这不是它的工作方式。 令牌过期只检查一次,在处理请求的开始阶段。
我将我遇到的上述问题追溯到一个问题,即我们的服务器资源在一段时间内达到了最大值。 当资源(CPU;HTTP请求工作线程)变得可用时,服务器开始处理请求,但此时令牌已经过期。