当前位置: 首页 > 知识库问答 >
问题:

关于Apache PDFBox和PDF认证的问题

红明德
2023-03-14

我们正在使用Apache PDFBox进行外部远程签名,源代码大部分是基于Apache PDFBox的官方示例。当我们尝试用多个签名签署一个文档时,我们注意到一些“问题”:它们是可见的签名。输入是带有一些签名持有者的文档。流程为:未签名的单据->签名(graphic_signature1,cert1,unsigned_doc)->签名_DOC_1->签名(graphic_signature2,cert2,signed_doc_1)->签名_DOC_2,....结果是:

  • signed_doc_1:Adobe Acrobat声明:签名有效,不修改
  • Signed_DOC_2和后续文件:Adobe Acrobat说明:自认证后对此文档所做的更改得到认证方的允许,并且不会使签名无效。

我还读了这篇文章:https://help.adobe.com/en_us/livecycle/11.0/services/ws92d06802c76abadb-3598a7d812dbeb3dcf3-7ff0.2.html

我想问的是:

  • 这实际上是一个问题吗?(对不起,我只是一个开发人员,对PDF认证的政策不是很了解)
  • 如果是问题,如何修复?

签名时,已经调用了以下saveIncrementalForExternalSigning:signatureOptions=new signatureOptions();SignatureOptions.SetVisualSignature(createVisualSignatureTemplate(doc,SigningRequest.GetSignatureInfo().GetPosition().GetPageNumber(),rect,signature));

        signatureOptions.setPage(signingRequest.getSignatureInfo().getPosition().getPageNumber());
        doc.addSignature(signature, null, signatureOptions);
        ExternalSigningSupport externalSigning = doc.saveIncrementalForExternalSigning(fos);
        // invoke external signature service
        byte[] cmsSignature = sign(externalSigning.getContent());
        // set signature bytes received from the service and save the file
        externalSigning.setSignature(cmsSignature);

共有1个答案

孔斌
2023-03-14

OP发布:

我通过注释代码行来调用setMDPPermission(doc,signature,2)来“修复”这个问题。(在Apache PDFBox签名示例中)。谢谢!

 类似资料:
  • 设备认证是为了保护内容的著作权而进行的程序。PlayStation®Store提供的内容或应用程序仅能在已认证的机器上使用。 PlayStation®Network的账号可注册至多个主机,但1个账号可进行设备认证的主机台数有限,台数因内容而异。超过可进行设备认证的主机台数时,会显示信息且无法购买或下载内容。遇此情形时,需解除已认证主机的设备认证。 进行设备认证 平常购买或下载内容时会自动进行设备认

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 刚开始学习java大约一个月,我对arraylist和oop有几个问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • 今天回北京了,想把在外地做的集群移植回来,需要修改ip地址和一些配置参数,结果在配置的过程中,总是会有一些提示,说是我的机器之间的认证权限有问题。所以对照以前写的安装手册,把ssh重新配置了一遍。但是发现在启动的时候还是有提示,说是我的ssh有错误,还是需要输入yes和密码来登录。总结了一下,内容如下: 1、hadoop的ssh配置namenode无密码访问datanode需要配置各个机器,详细步

  • 问题内容: 我一直在思考环境变量,并有一些问题/观察。 此呼叫似乎存在致命缺陷。因为它不会复制传递的字符串,所以您不能使用本地调用它,并且不能保证分配给堆的字符串不会被覆盖或意外删除。此外(尽管我尚未测试过),因为环境变量的一种用法是将值传递给孩子的环境,如果孩子调用其中一个功能,这似乎毫无用处。我说错了吗? Linux手册页指示glibc 2.0-2.1.1放弃了上述行为,并开始复制字符串,但这

  • 本文向大家介绍关于Angular.js和Angular的问题相关面试题,主要包含被问及关于Angular.js和Angular的问题时的应答技巧和注意事项,需要的朋友参考一下 haizlin,你好,我想提一个建议。由于Angular和Angular.js是2个不同的框架,我建议要么将该Issue改为Angular面试题模版,要么新建一个Angular面试题模版。

  • 刚开始学习java大约一个月,我有几个关于arraylist和oop的问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去