日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java流方式接收pdf_java – 在Itext 7中,如何获取范围流来签署pdf?

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java流方式接收pdf_java – 在Itext 7中,如何获取范围流来签署pdf? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

getRangeStream不是從PdfSignatureAppearance重構為PdfSigner的唯一方法,并以此方式受到保護.其他方法也存在同樣的問題,例如preClose和close,它們也是用于PDF文檔的數字簽名的PreSign和PostSign servlet中使用的方法,您似乎使用這些方法或者至少借用代碼.

正如我所說,這已經完成,使iText 7用戶使用signDeferred,signDetached和signExternalContainer方法,這些方法通常足以簽署應用程序并“正確執行”,即使用另一種,現在不再使用公共方法了這會創建有效的簽名.

不幸的是,PreSign和PostSign servlet不能使用這三種方法,它們實際上就像signDetached代碼被分成兩半,相關的局部變量存儲在HTTP會話中.

因此,您基本上有兩個選擇:

盡管如此,請使用受保護的方法

除非我忽略了某些內容,否則甚至可以通過從PdfSigner派生自己的簽名者類并使這些方法和可能的成員變量再次公開訪問來完成;乍一看使用反射魔法似乎沒有必要.

更改PreSign和PostSign servlet體系結構

如果您可以從保留內存中的簽名相關對象(通過HTTP會話引用)切換到僅將中間PDF文件保存在內存中甚至磁盤上,并且可能是內存中的半成品簽名容器,您可以這樣繼續:

>使用帶有IfternalSignatureContainer實現的PdfSigner.signExternalContainer“簽署”PDF的servlet替換PreSign servlet,該實現僅提供虛擬簽名,例如:新字節[0].

此IExternalSignatureContainer檢索所尋找的范圍流作為其sign方法的參數,因此它可以計算范圍流哈希.

現在,帶有虛擬簽名的PDF可以保存到磁盤或保存在內存中.并且基于范圍流哈希,您可以像以前一樣繼續構建和提供PdfPKCS7實例.并將其保存在內存中,例如從HTTP會話引用.

>用一個servlet替換PostSign servlet,該servlet在完成PdfPKCS7實例的送入之前生成一個CMS簽名容器.然后使用PdfSigner.signDeferred方法將此容器注入已保存的PDF.

或者,您甚至可以將整個CMS簽名容器創建移動到客戶端.在這種情況下,所有會話必須記住中間PDF存儲的位置…

總結

以上是生活随笔為你收集整理的java流方式接收pdf_java – 在Itext 7中,如何获取范围流来签署pdf?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。