📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 8.4-8.9

简而言之,当Elasticsearch尝试验证JSON Web密钥(JWK)但发现列表为空时,就会出现此错误。JWK是一种表示加密密钥的JSON数据结构,用于基于令牌的身份验证。此错误表明JWK列表应该至少包含一个密钥,但实际上为空。要解决此问题,请确保JWK列表已正确配置并且至少包含一个有效密钥。此外,检查您的身份验证设置以确保其正确实现。如果您使用第三方服务进行身份验证,请确保其正确集成并提供必要的密钥。

日志上下文 #

日志“Verify requires a non-empty JWK list”的类名是 JwtValidateUtil.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入理解的人参考:

* @throws Exception Error if JWKs fail to validate the Signed JWT.
 */
public static void validateSignature(final SignedJWT jwt; final Listjwks) throws Exception {
    assert jwks != null : "Verify requires a non-null JWK list";
    if (jwks.isEmpty()) {
        throw new ElasticsearchException("Verify requires a non-empty JWK list");
    }
    final String id = jwt.getHeader().getKeyID();
    final JWSAlgorithm alg = jwt.getHeader().getAlgorithm();
    LOGGER.trace("JWKs [{}]; JWT KID [{}]; and JWT Algorithm [{}] before filters."; jwks.size(); id; alg.getName());