第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Apache POI 是否支持對單詞進(jìn)行兩次簽名?

Apache POI 是否支持對單詞進(jìn)行兩次簽名?

慕桂英3389331 2021-09-15 17:10:11
我試圖運(yùn)行簽名代碼兩次,但我發(fā)現(xiàn)它只是一般的 sig1.xml ,而不是 sig1.xml 和 sig2.xml 。char password[] = "test".toCharArray();File file = new File("test.pfx");KeyStore keystore = KeyStore.getInstance("PKCS12");FileInputStream fis = new FileInputStream(file);keystore.load(fis, password);fis.close();// extracting private key and certificateString alias = "xyz"; // alias of the keystore entryKey key = keystore.getKey(alias, password);X509Certificate x509 = (X509Certificate)keystore.getCertificate(alias);// filling the SignatureConfig entries (minimum fields, more options are available ...)SignatureConfig signatureConfig = new SignatureConfig();signatureConfig.setKey(keyPair.getPrivate());signatureConfig.setSigningCertificateChain(Collections.singletonList(x509));OPCPackage pkg = OPCPackage.open(..., PackageAccess.READ_WRITE);signatureConfig.setOpcPackage(pkg);// adding the signature document to the packageSignatureInfo si = new SignatureInfo();si.setSignatureConfig(signatureConfig);si.confirmSignature();
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個贊

我已經(jīng)通過#63011修復(fù)了原始問題,它將在 POI 4.1.0 中發(fā)布。

票的相關(guān)部分是。

有一個新的配置屬性SignatureConfig.setAllowMultipleSignatures(true)允許添加簽名,默認(rèn)情況下為 false 以保持向后兼容。


查看完整回答
反對 回復(fù) 2021-09-15
?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個贊

在 org.apache.poi.poifs.crypt.dsig.SignatureInfo 中,有一個方法 writeDocument(Document document) 創(chuàng)建覆蓋前一個(如果有)的 sig1.xml,這就是為什么如果你多次簽署它,你只會看到最后一個簽名,盡管在 docx/xlsx 的 _xmlsignatures/_rels/origin.sigs.rels 中,您可以看到與每個簽名的關(guān)系。


如果你更換:


 sigPartName = PackagingURIHelper.createPartName("/_xmlsignatures/sig1.xml");

像這樣:


SignatureInfo si = new SignatureInfo();

si.setSignatureConfig(signatureConfig);

Iterator<?> iterator = si.getSignatureParts().iterator();

int i = 1;

while (iterator.hasNext()) {

   iterator.next();

   i++;

 }

sigPartName = PackagingURIHelper.createPartName("/_xmlsignatures/sig" + i + ".xml");

它將創(chuàng)建 sig1.xml, sig2.xml, ... 當(dāng)打開 docx/xlsx 時,所有簽名都會在那里。


查看完整回答
反對 回復(fù) 2021-09-15
  • 2 回答
  • 0 關(guān)注
  • 327 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號