当前位置: 首页 > 知识库问答 >
问题:

如何在nimbus-jose-jwt中使RemoteJWKSet的缓存无效

齐昊
2023-03-14

我们正在使用nimbus-jose-jwt第三方库中的RemoteJWKSet进行基于JWKSendpoint的JWT验证。

通过RemoteJWKSet,我们可以从远程endpoint检索JWK,检索到的JWK集被缓存,以便最大限度地减少网络调用。此外,它能够处理远程服务器上的密钥循环,因为每当密钥选择器试图获取带有未知子密钥的密钥时,缓存就会更新。

我的问题是,假设由于安全原因,从远程JWKSendpoint移除了一个特定的密钥集。但是当我们获得使用删除的密钥签名的JWT时,它仍然有效,因为该密钥集在缓存中可用(RemoteJWKSet只有在获得带有未知子项的令牌时才会更新缓存)。

我需要知道是否有任何可能的方法来使RemoteJWKSet中缓存的JWK集无效,如果需要的话,除了重新启动服务器

共有1个答案

翟光赫
2023-03-14

在connect2id支持门户[1]上提出了同样的问题

他们建议放置一个空的JWK集,这将导致RemoteJWKSet在下一次调用时从URL重新加载密钥集,作为使JWKS缓存无效的机制。

[1]https://bitbucket.org/connect2id/nimbus-jose-jwt/issues/287/how-to-invalidate-cache-of-remoteJWKset-in

 类似资料:
  • 对示例代码中应用的概念“带RSA加密的JSON Web令牌(JWT)”有疑问 参见:http://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-rsa-encryption 我的问题:为什么客户端使用私钥?为什么不在加密器上使用私钥,在解密器类上使用公钥呢? 欢迎对此RSA示例代码的概念方面进行澄清。

  • 我在用 jre 1.6.0,nimbus-jose-jwt-8.20-jdk6.jar,bcprov-jdk15to18-166.jar。 我用EC算法和椭圆曲线P-512创建了一个密钥库和一个密钥对。如果我使用私钥对JWT进行签名,然后尝试使用公钥对其进行验证,那么一切都可以正常工作,但是除了签名之外,我还需要进行加密,以生成一个看不到有效负载的JWE。 我还在https://connect2i

  • 我想这个问题不是上当,所以我会试着解释一下我的情况。 我正在测试JWT,更具体地说是来自Github的JOSE-JWT lib,但是我遇到了一些麻烦。 我使用PHP和PHPSeclib生成一个私钥-公钥对,并将公钥发送给客户机。一切都是正确的,正如你在那里看到的。我的客户机接收JSON并将其转换为对象,然后使用JSON.NET将其提取为字符串。 还有弹力城堡: 例外情况: CreateToken方

  • 问题内容: 我有一个简单的User $ resource,它使用默认的$ http缓存实现,如下所示: 这非常好用,即我的服务器在应用程序中仅被调用一次,然后从缓存中获取值。 但是我需要在执行某些操作后从服务器刷新值。有没有简单的方法可以做到这一点? 谢谢。 问题答案: 保留布尔值并获取缓存: 然后,您可以像使用所提供的任何其他缓存一样控制它,这是下面提供的用法实例:

  • 我想用JSON Web签名(JWS)做一个项目,并且我想发送用于签名的证书的公钥,以便在收到该公钥后可以验证消息。我正在使用Ninbus JOS JWT库。我可以对JSON对象进行签名,并且可以看到公钥,但是我无法正确验证它。代码如下: 公钥是:“Sun RSA公钥,2048位”,但当我从JWK(_RSA公钥2)获得它时,我得到了“Sun RSA公钥,3696位”,我不知道为什么。 谢谢

  • 问题内容: 我有一个PHP 5.1.0网站(实际上是5.2.9,但它也必须在5.1.0+上运行)。 页面是动态生成的,但是许多页面大多数是静态的。静态是指内容不变,但是内容周围的“模板”会随着时间而改变。 我知道他们已经有几个缓存系统和PHP框架,但是我的主机没有安装APC或Memcached,并且我没有为该特定项目使用任何框架。 我希望页面被缓存(我认为默认情况下PHP“不允许”缓存)。到目前为