gpt4 book ai didi

spring-boot - Spring Boot 安全性 - 允许用户请求使用过期的 JWT token

转载 作者:行者123 更新时间:2023-12-04 11:43:53 25 4
gpt4 key购买 nike

我有一些用户正在使用有效的 JWT token 访问一些 API,但是因为他们的任务花费的时间比 token 过期时间长得多,当他们再次访问 API 时,JWT token 已经过期。他们不应该刷新他们的 token ,他们必须使用相同的 token 并使用过期的 token 访问某些 API。
我正在使用 spring.security.oauth2.resourceserver与我们的授权服务器进行身份验证。
因此,我想要实现的是,如果 token 来源正确并且格式良好,即使 token 已过期,我也需要接受请求。
是的,我知道这似乎不是一个好方法,但如果可能,请教育我。
我已经读过 ClientHttpRequestInterceptor来自 here并深入到 resource server 的源代码但找不到合适的方法。

最佳答案

我完全建议您不要这样做,因为如果某个恶意用户从某人那里窃取了 JWT,他将能够永远请求 protected 资源,因为 token 不会过期。在这种情况下你应该做的是刷新 token ,请前往 docs for refreshing the access token .
但出于知识目的,可以提供自定义 JwtDecoder可以按照您想要的方式验证 JWT。
你应该只暴露一个 @Bean类型 JwtDecoder使用您的特定配置,如下所示:

@Bean
public JwtDecoder jwtDecoder() {
OAuth2TokenValidator<Jwt> myCustomJwtValidator = new MyImplementationOfOAuth2TokenValidator();
NimbusJwtDecoder jwtDecoder = NimbusJwtDecoder.withPublicKey(myPublicKey).build();
jwtDecoder.setJwtValidator(myCustomJwtValidator);
return jwtDecoder;
}
您可以在 documentation 上找到更多详细信息.

关于spring-boot - Spring Boot 安全性 - 允许用户请求使用过期的 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67924703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com