版本: 8.6-8.6
简而言之,当 Elasticsearch 的 JSON Web Token (JWT) 身份验证由于缺少必需的字符串声明而失败时,会出现此错误。claimName 是关于用户身份或角色的一条信息。要解决此问题,请确保 JWT 包含所有必需的声明。你可以通过检查 JWT 的有效负载来实现这一点。如果声明缺失,你需要添加它。或者,如果该声明不是必需的,你可以修改 Elasticsearch 配置将其从必需声明中移除。
日志上下文 #
日志 “missing required string claim [” + claimName + “]” 的类名是 JwtStringClaimValidator.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
claimValues = getStringClaimValues(jwtClaimsSet);
} catch (ParseException e) {
throw new ElasticsearchSecurityException("cannot parse string claim [" + claimName + "]"; RestStatus.BAD_REQUEST; e);
}
if (claimValues == null) {
throw new ElasticsearchSecurityException("missing required string claim [" + claimName + "]"; RestStatus.BAD_REQUEST);
} if (false == claimValues.stream().anyMatch(allowedClaimValues::contains)) {
throw new ElasticsearchSecurityException(
"string claim ["





