Itext 读取受保护的pdf,xss设置过低,并且存在循环依赖关系

Itext 读取受保护的pdf,xss设置过低,并且存在循环依赖关系,itext,pdfbox,Itext,Pdfbox,我被困在业主密码安全的pdf阅读。我在谷歌上搜索了很多不同的解决方案,但仍停留在某个地方,详细信息如下: 使用的技术:Java1.7、Struts1.3 任务:阅读安全pdf 目前,我的tomcat/lib大约有190个JAR。相关JAR包括: iText-2.1.7 iTextPdf 5.5.13 pdfbox-app-1.8.6 bcprov-jdk16-141 目前我的代码如下: try{ pdfReader reader= new pdfReader(src); }catch(E

我被困在业主密码安全的pdf阅读。我在谷歌上搜索了很多不同的解决方案,但仍停留在某个地方,详细信息如下:

使用的技术:Java1.7、Struts1.3 任务:阅读安全pdf

目前,我的tomcat/lib大约有190个JAR。相关JAR包括:

  • iText-2.1.7
  • iTextPdf 5.5.13
  • pdfbox-app-1.8.6
  • bcprov-jdk16-141
  • 目前我的代码如下:

    try{
        pdfReader reader= new pdfReader(src);
    }catch(Exception e){
        //logs
    }
    
    我发现错误
    org.bouncycastle.asn1.asn1未找到原语。

    所以我添加了bcprov-ext-jdk14-1.47

    这解决了我在windows环境下的问题,但在Linux环境下使用时,我遇到以下错误:

    signer information does not match with signer information from other class in same package.
    
    经过进一步研究,我发现pdfbox具有maven依赖性,因此使用了bcprov-jdk15on-1.49并删除了bcprov的所有旧版本

    现在我的最后一期是:

    此组合:pdfbox-app-1.8.6和bcpov-jdk15on-1.49导致以下错误

    Too low xss setting and causing cyclic dependencies on two classes present in both jars.
    
    尽管这个问题只在少数几只雄猫身上重现


    请提供帮助。

    请阅读PDFBox的依赖项页面,并使用最新版本,即1.8.15或2.0.11。这些页面提到了需要哪个bouncycastle版本。对于1.8,需要1.44版:但最好使用2.0.11,这使用1.54。您不需要2个版本的iText,您可以删除2.1.7版。欢迎使用Bouncy Castle version hell。不幸的是,BC在次要的版本步骤中引入了主要的更改,而且不幸的是,iText和PDFBox都依赖于特定的BC版本,这两个版本当然会有所不同,并且随着版本的不同而变化。因此,如果没有像OSGi这样的技术,您的项目的多个第三方库依赖于BC,那么您总是可能会遇到麻烦。