Spring Security OAuth2何时检查访问令牌到期?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Security OAuth2何时检查访问令牌到期?相关的知识,希望对你有一定的参考价值。

我正在调试生产环境中的一个场景,在这个场景中,我断断续续地看到来自资源服务器的意外HTTP 401响应。 我正在使用Spring Security OAuth2("老 "OAuth库;Spring Security 5.2.x之前及其OAuth2的实现)来处理请求并执行Authn。

我观察到的情况如下。

  1. 一个用户在登录的时候 x (这里的时间以秒为单位)并获得一个访问令牌。 该访问令牌在时间 x + 900 (15分钟有效期)。
  2. 在时间 x + 480,用户向受保护的端点发出请求。
  3. 该请求需要很长时间才能完成,以至于当令牌过期时,它仍在被处理。 在时间 x + 900,服务器返回一个 HTTP 401 响应。

问题。

  1. Spring Security OAuth2真的是这样工作的吗? 具体来说,它是否会跟踪token的过期时间,在token过期时,如果请求仍在处理,则返回401? 还是在安全过滤器的另一端,在准备响应的时候?
  2. 有没有办法禁止这种行为,使token只在请求第一次被处理时被检查?
答案

我看了一下 spring-security-oauth2 而这不是它的工作方式。 令牌过期只检查一次,在处理请求的开始阶段。

我将我遇到的上述问题追溯到一个问题,即我们的服务器资源在一段时间内达到了最大值。 当资源(CPU;HTTP请求工作线程)变得可用时,服务器开始处理请求,但此时令牌已经过期。

以上是关于Spring Security OAuth2何时检查访问令牌到期?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security Oauth2

Spring-Security OAuth2 设置 - 无法找到 oauth2 命名空间处理程序

Spring Security OAuth2 v5:NoSuchBeanDefinitionException:'org.springframework.security.oauth2.jwt.Jwt

针对授权标头的Spring Security OAuth2 CORS问题

OAuth2.0学习(4-1)Spring Security OAuth2.0 - 代码分析

Spring Security---Oauth2详解