Adi*_*aöz 5 spring-security jwt spring-boot spring-security-oauth2 spring-security-rest
我有一些用户正在使用有效的 JWT 令牌访问一些 API,但是因为他们的任务花费的时间比令牌过期时间长得多,当他们再次访问 API 时,JWT 令牌已经过期。他们不应该刷新他们的令牌,他们必须使用相同的令牌并使用过期的令牌访问某些 API。
我正在使用spring.security.oauth2.resourceserver与我们的授权服务器进行身份验证。
因此,我想要实现的是,如果令牌来源正确并且格式良好,即使令牌已过期,我也需要接受请求。
是的,我知道这似乎不是一个好方法,但如果可能,请教育我。
我已经ClientHttpRequestInterceptor从这里阅读并深入研究了 的源代码,resource server但找不到合适的方法。
我完全建议您不要这样做,因为如果某些恶意用户从某人那里窃取了 JWT,他将能够永远请求受保护的资源,因为令牌不会过期。在这种情况下您应该做的是刷新令牌,请前往文档刷新访问令牌。
但出于知识目的,可以提供可以按照JwtDecoder您想要的方式验证 JWT 的自定义。您应该只公开具有特定配置的@Bean类型,如下所示:JwtDecoder
@Bean
public JwtDecoder jwtDecoder() {
OAuth2TokenValidator<Jwt> myCustomJwtValidator = new MyImplementationOfOAuth2TokenValidator();
NimbusJwtDecoder jwtDecoder = NimbusJwtDecoder.withPublicKey(myPublicKey).build();
jwtDecoder.setJwtValidator(myCustomJwtValidator);
return jwtDecoder;
}
Run Code Online (Sandbox Code Playgroud)
您可以在文档中找到更多详细信息。
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |