ClassCastException При отработке ibasicocspresponse в ibasicocspresp в ITEXT 8.0.4JAVA

Программисты JAVA общаются здесь
Anonymous
ClassCastException При отработке ibasicocspresponse в ibasicocspresp в ITEXT 8.0.4

Сообщение Anonymous »

Я работаю с ITEXT 8.0.4 (Repository Github) и пытаюсь поднять ibasicocspresponse (от com.itextpdf.signatures) в ibasicocspresp (от com.itextpdf.commons.bouncycastle.cert.ocsp). Br /> Это необходимо для использования ocspverifier следующим образом: < /p>
List ocsps = new ArrayList();
if (pkcs7.getOcsp() != null) {
ocsps.add((IBasicOCSPResp) pkcs7.getOcsp()); // Causes ClassCastException
}

// Checking if the OCSP responses in the list were valid for the certificate on a specific date.
OCSPVerifier ocspVerifier = new OCSPVerifier(null, ocsps);
< /code>
Тем не менее, это приводит к следующему ClasscastException: < /p>

Java.lang.classcastexception: class
com .itextpdf.bouncycastle.asn1.ocsp.basicocspresponsebc не может быть
Cost to Class
comm.itextpdf.commons.bouncycastle.cert.ocsp.ibasicocspresp
(comcom.itextpdf.bouncycastle.asn1.ocsp.basicocspresponsebc и
com.itextpdf.commons.bouncycastle.cers.ocsp.ibaspresp. в
бездушный модуль Загрузка App ') < /p>
< /blockquote>
Вот соответствующая функция: < /p>
public VerifResult checkRevocation(PdfPKCS7 pkcs7, X509Certificate signCert,
X509Certificate issuerCert, Date date, Signature signature)
throws GeneralSecurityException {

List ocsps = new ArrayList();
if (pkcs7.getOcsp() != null) {
ocsps.add((IBasicOCSPResp) pkcs7.getOcsp()); // Causes ClassCastException
}

// Check OCSP response validity
OCSPVerifier ocspVerifier = new OCSPVerifier(null, ocsps);
List verification = ocspVerifier.verify(signCert, issuerCert, date);

// If OCSP verification fails, fall back to CRL verification
if (verification.isEmpty()) {
List crls = new ArrayList();
if (pkcs7.getCRLs() != null) {
for (CRL crl : pkcs7.getCRLs()) {
crls.add((X509CRL) crl);
}
}
CRLVerifier crlVerifier = new CRLVerifier(null, crls);
verification.addAll(crlVerifier.verify(signCert, issuerCert, date));
}

boolean ok = false;
if (verification.isEmpty()) {
logger.info("[{}] The signing certificate couldn't be verified", this.traceid);
signature.setNotRevokedWhenSigned(false);
return new VerifResult(false, false);
} else {
for (VerificationOK v : verification) {
logger.info(v);
signature.setNotRevokedWhenSigned(true);
ok = true;
}
}
signature.setNotRevokedWhenSigned(false);
return new VerifResult(false, ok);
}
< /code>
Используемые зависимости: < /p>


com.itextpdf
bouncy-castle-adapter
${itext.version}



com.itextpdf
itext-core
${itext.version}
pom



com.itextpdf
kernel
${itext.version}


< /code>
Что я пробовал: < /p>
  • Проверка на дублирующие версии зависимости < /p>
    < /li>
    Использование управления зависимостями (вызвало больше ошибок) < /p>
    < /li>
    pkcs7.getocsp (). toasn1primity (). getEncoded () в ibasicocspresp (привел к уловому ответу: незаконная объект в GetInstance: org.bouncycastle.asn1.dlecedence) < /p>
    < /li>
    Как я могу правильно преобразовать ibasicocspresponse (из com.itextpdf.signatures) в ibasicocspresp (от com.itextpdf.commons.bouncycastle.cert.ocsp), чтобы использовать его в ocspverifier? < /p>
    < /li>
    Есть ли обходной путь, чтобы избежать проблемы ClassCastException?
Любое руководство будет высоко оценено. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... in-itext-8

Вернуться в «JAVA»