📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

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