版本: 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());





