版本: 7.2-7.15
简要来说,当Elasticsearch安全功能在OAuth2认证过程中无法将授权码交换为ID令牌时,就会发生此错误。这可能是由于配置不正确、授权码无效或身份提供程序出现问题造成的。要解决此问题,请确保Elasticsearch安全设置配置正确,授权码有效,并且身份提供程序正常运行。此外,还要检查Elasticsearch与身份提供程序之间的网络连接。
Log Context #
Log “Failed to exchange code for Id Token. Code=[{}]; Description=[{}]” class name is OpenIdConnectAuthenticator.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
final String json = EntityUtils.toString(entity; encoding);
LOGGER.warn("Received Token Response from OP with status [{}] and content [{}]"; responseStatus; json);
if (RestStatus.BAD_REQUEST == responseStatus) {
final TokenErrorResponse tokenErrorResponse = TokenErrorResponse.parse(JSONObjectUtils.parse(json));
tokensListener.onFailure(
new ElasticsearchSecurityException("Failed to exchange code for Id Token. Code=[{}]; Description=[{}]";
tokenErrorResponse.getErrorObject().getCode(); tokenErrorResponse.getErrorObject().getDescription()));
} else {
tokensListener.onFailure(new ElasticsearchSecurityException("Failed to exchange code for Id Token"));
}
} else {





