问题标签 [nimbus-jose-jwt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 nimbus-jose-jwt 中,lifespan 和 refreshTime 有什么区别?
nimbus-jose-jwt 的DefaultJWKSetCache类有两个字段,lifespan 和 refreshTime。
来自 Java 文档 -
lifespan - 缓存的 JWK 设置在过期之前的生命周期,负数表示没有过期。
refreshTime - 缓存的 JWK 集标记为刷新的时间,如果未指定,则为负数。应该更短或等于寿命。
这两者有什么区别。这是否意味着,
在使用期限到期后,缓存的 JWK 集将被逐出并再次从 jwks 远程 url 加载(在我使用时说远程 url RemoteJWKSet
)。
并且在刷新到期后,现有的 JWK 集将使用从远程 url 检索到的密钥进行更新。
但我不明白两者之间的实际区别。两者似乎都在做同样的事情。有人可以更详细地解释细节和任何例子。
编辑 - 如果我的寿命没有到期,而 refreshTime 的到期时间为 1 小时,我是否保证我的密钥将每隔一小时更新一次。
java - 当使用 nimbus-jose-jwt 时,当请求远程 url 进行缓存更新等时,我可以使用 RemoteJWKSet 找到(在日志中查看)
我正在将 nimbus-jose-jwt 与RemoteJWKSet一起使用,并希望在向远程 url 发出缓存更新等请求时找到(参见日志)。
对于 spring boot 应用程序,我设置logging.level.com.nimbusds=TRACE
但找不到与调用相关的任何日志记录用于从远程服务器检索 jwks 的远程 url。
有没有办法找到何时调用远程服务器来检索 jwks。
编辑:
如果有人想查看代码,所需的 jwks 代码已上传到 github: NimbusJose-JWKSCaching。
azure-active-directory - 经常遇到“无法检索远程 JWK 集:读取超时”
我们在 Tomcat 9 上运行 Spring Boot 应用程序并尝试使用 Azure B2C 进行身份验证。我们在打电话
然后大概是 AAD 代码正在获取其其余依赖项。但是,我们经常看到验证 JWT 令牌的超时:
这看起来与这篇文章非常相似,但我仍然没有解决此问题的解决方案。
有没有人有什么建议?
- 爪哇 11
- 雄猫 9
- 春天 5.3.8
- 春季启动 2.5.7
- 弹簧安全 5.5.4
- Nimbus-Jose-JWT 9.10.1
spring-boot - 如何在 Spring Boot 中验证 jwt 令牌?
我想在我的 Spring Boot 应用程序中实现 JWT 验证。我们用于签署令牌的算法是 Ed25519\EDDSA 。
我没有找到正确的依赖项/库来使用 ED25519 算法实现 Jwt 验证程序。
有人可以建议 Maven 依赖项来验证 JWT 令牌吗?
spring - Spring Resource Server 与授权服务器的连接。默认超时
Spring 安全文档https://docs.spring.io/spring-security/reference/servlet/oauth2/resource-server/jwt.html#oauth2resourceserver-jwt-timeouts 指出:
默认情况下,资源服务器使用 30 秒的连接和套接字超时来与授权服务器进行协调。
我通过以下方式创建了 JwtDecoder:
jwkSetUri 设置为一些不存在的 ip。现在,向我的资源服务器发出请求会超时(如预期的那样)并引发以下异常:
但是,引发异常的时间与文档中描述的不匹配。当我在 Windows 上运行应用程序时,大约需要 20 秒。当我在 Linux 上运行时,大约需要 2-3 分钟。看起来它取决于操作系统。但是,当我手动设置超时如下:
然后正如预期的那样,我在 5 秒后超时。我是否遗漏了什么或文档中给出的默认值不正确?
kotlin - Nimbus JOSE JWT 预计观众声称是任何一个
在验证 JWT 时,我有一个允许的客户端 ID 列表的场景。我将客户端 ID 作为受众声明放入 JWT 中,但是在验证时我需要与列表进行比较。
我尝试了以下方法:
但是,如果现在只使用我正在执行的一个客户端 ID 发出 JWT,那么验证将失败
我该怎么做才能使验证者期望任何客户端 ID 在观众声明中,但不是完整列表?当然,另一种选择是在开头的观众声明中添加一个客户端 ID,但我想避免这种情况。
java - 无法使用 nimbus 从 azure 验证访问令牌签名
在这个示例之后,我编写了一些代码来验证来自 azure 的隐式流返回的访问令牌。
但验证失败,我得到:
我想我不需要DefaultJWTClaimsVerifier
零件,但删除它不会改变任何东西。我应该保留它以坚持这个例子。
你知道为什么会这样吗?
谢谢你的帮助。
PS:无法使用 jwt.io 进行验证。我从 jwk 粘贴了 access_token 和“keys”部分的第一个条目。