Внутри org.apache.poi.poifs.crypt.dsig.SignatureInfo есть метод writeDocument (Document document), который создает sig1.xml, переопределяющий предыдущий (если есть), поэтому, если вы подпишете его несколько раз,Вы увидите только последнюю подпись, хотя внутри _xmlsignatures / _rels / origin.sigs.rels документа docx / xlsx вы можете увидеть отношение к каждой подписи.
если вы замените:
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");
создаст sig1.xml, sig2.xml, ... и при открытии docx / xlsx все подписи будут там.