gpt4 book ai didi

java - 验证认证路径

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:39 24 4
gpt4 key购买 nike

我用 Java 实现了 SAML SP。
为了验证 SAML 响应的证书,
我从 SAML 响应中提取 X509Certificate 元素,并根据我预先上传 IDP 证书的 Java keystore 文件对其进行验证。
我使用以下代码来验证证书:

 X509Certificate certFromResponse = //extract from SAML response 
KeyStore keyStore = getKS();
PKIXParameters params = new PKIXParameters(keyStore);
params.setRevocationEnabled(false);
CertPath certPath =
certificateFactory.generateCertPath(Arrays.asList(certFromResponse));
CertPathValidator certPathValidator = CertPathValidator.getInstance(CertPathValidator.getDefaultType());
CertPathValidatorResult result = certPathValidator.validate(certPath, params);

这对于根 CA 的证书来说效果很好。
当证书有证书路径时,验证失败。
一种可能的处理方法是手动将路径中的所有证书上传到 JKS 文件
具有不同的别名,然后将它们提取到如下列表中:

List<Certificate> certs = new ArrayList<Certificate>();
certs.add(certFromResponse);
if (keyStore.getCertificate("ALIAS_CA_1") != null) {
certs.add(keyStore.getCertificate("ALIAS_CA_1"));
}
if (keyStore.getCertificate("ALIAS_CA_2") != null) {
certs.add(keyStore.getCertificate("ALIAS_CA_2");
}
...
CertPath certPath = certificateFactory.generateCertPath(certs);

有没有更简单的方法?
是否可以从证书本身中提取证书路径?

谢谢!

最佳答案

看来 PKIXParameters 会自动提取证书路径,因此无需手动执行。
我们所要做的就是将所有证书上传到 keystore 。

关于java - 验证认证路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com