版本: 7.7-7.15
简而言之,当指定的Java签名算法与SAML/XML-Sig算法不兼容时,会出现此错误。这可能是由于配置不匹配或Java环境中缺少所需算法导致的。要解决此问题,您可以更新Java环境以包含所需的算法,或者调整SAML/XML-Sig配置以使用当前Java环境中可用的算法。此外,确保Java Cryptography Extension(JCE)已正确安装和配置。
日志上下文 #
日志"Java signature algorithm [{}] is not available for SAML/XML-Sig algorithm [{}]“的类名是 SamlAuthnRequestValidator.java。 我们从Elasticsearch源代码中提取了以下内容,为那些寻求深入上下文的人提供参考:
Signature sig = Signature.getInstance(javaSigAlgorithm);
sig.initVerify(credential.getEntityCertificate().getPublicKey());
sig.update(contentBytes);
return sig.verify(signatureBytes);
} catch (NoSuchAlgorithmException e) {
throw new ElasticsearchSecurityException("Java signature algorithm [{}] is not available for SAML/XML-Sig algorithm [{}]";
e; javaSigAlgorithm; queryString.sigAlg);
} catch (InvalidKeyException | SignatureException e) {
logger.warn(new ParameterizedMessage("Signature verification failed for credential [{}]";
samlFactory.describeCredentials(new HashSet<>(Collections.singletonList(credential)))); e);
return false;





