gpt4 book ai didi

spring - 资源服务器端的 JWT 签名验证

转载 作者:行者123 更新时间:2023-12-05 05:25:05 24 4
gpt4 key购买 nike

根据 thisthis有两种方法可以验证 JWT token :

  1. 使用 RemoteTokenServices,它基本上调用 oauth 服务器的 /check_token 端点,检索整个 token 并进行比较
  2. 在 oauth 服务器上公开公钥并在资源服务器上验证 JWT 的签名

一开始我尝试了第一种方法,但由于我使用的是每次生成 token 时都会访问数据库的自定义 token 转换器,所以我决定切换到资源端的签名验证 - 不想每次都调用额外的数据库每个客户请求。

经过一些调查,我意识到 ResourceServerTokenServices(接口(interface)描述 token 检索、转换和生成有效的 OAuth2Authentication 对象)只有两个默认实现:DefaultTokenServices 主要用于 oauth 和资源服务器是同一应用程序和第一种方法中描述的 RemoteTokenServices 的一部分。

所以主要问题是 spring-oauth2 是否真的没有 JWT 签名验证的默认实现,或者我只是找不到一个?

最佳答案

您不需要特定于 JWT 的 ResourceServerTokenServices,因此 DefaultTokenServices 应该没问题。大多数具体实现的细节都会发送到商店,因此只要您正确配置了 JwtTokenStore 就应该没有问题。

Here :

The Resource Server also needs to be able to decode the tokens so the JwtTokenStore has a dependency on a JwtAccessTokenConverter, and the same implementation is needed by both the Authorization Server and the Resource Server. The tokens are signed by default, and the Resource Server also has to be able to verify the signature, so it either needs the same symmetric (signing) key as the Authorization Server (shared secret, or symmetric key), or it needs the public key (verifier key) that matches the private key (signing key) in the Authorization Server (public-private or asymmetric key). The public key (if available) is exposed by the Authorization Server on the /oauth/token_key endpoint

您可以扩展 JwtAccessTokenConverter 以访问公开公钥的授权服务器。

关于spring - 资源服务器端的 JWT 签名验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472499/

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