我被困在所有者密码保护的 pdf 阅读中。我在谷歌上搜索了很多尝试不同的解决方案,但停留在某个地方,详细信息如下:
使用的技术:java 1.7,struts 1.3 任务:阅读安全的pdf。
目前我的 tomcat/lib 有大约 190 个 jars 相关的 jars 是:
- 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.asn1primitive not found.
所以我添加了 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.
虽然这个问题只能在少数 Tomcat 上重现。
请帮忙。