版本: 6.8-7.15
简而言之,当 Elasticsearch 由于配置不正确或缺失而无法解析特定角色的索引权限时,就会发生此错误。它表示如果给出了某个特定参数,则需要另一个特定参数。要解决此问题,你应该检查并更正角色配置。确保提供了所有必需的参数并正确格式化。如果问题仍然存在,考虑将角色配置重置为默认状态并重新配置。
日志上下文 #
日志 “failed to parse indices privileges for role [{}]. {} requires {} if {} is given” 的类名是 RoleDescriptor.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:
if (privileges == null) {
throw new ElasticsearchParseException("failed to parse indices privileges for role [{}]. missing required [{}] field";
roleName; Fields.PRIVILEGES.getPreferredName());
}
if (deniedFields != null && grantedFields == null) {
throw new ElasticsearchParseException("failed to parse indices privileges for role [{}]. {} requires {} if {} is given";
roleName; Fields.FIELD_PERMISSIONS; Fields.GRANT_FIELDS; Fields.EXCEPT_FIELDS);
}
checkIfExceptFieldsIsSubsetOfGrantedFields(roleName; grantedFields; deniedFields);
return RoleDescriptor.IndicesPrivileges.builder()
.indices(names)





