2014-07-04 3 views
0

Это мой код, чтобы подписать XML документ:xades4j как добавить скрепил

KeyingDataProvider kp = new FileSystemKeyStoreKeyingDataProvider(keyStoreType, 
    keyStorePath, certificateSelector, keyStorePasswordProvider, 
    entryPasswordProvider, returnFullChain); 
XadesSigningProfile p = new XadesBesSigningProfile(kp); 

XadesSigner signer = p.newSigner(); 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
factory.setNamespaceAware(true); 

DocumentBuilder builder = factory.newDocumentBuilder();  

docSource = builder.parse(new FileInputStream(pathToXmlFile)); 
docDest = builder.newDocument(); 

Node objContent = docDest.importNode(docSource.getDocumentElement(), true); 

DataObjectDesc obj = new EnvelopedXmlObject(objContent, "text/xml", null); 

new Enveloped(signer).sign(docSource.getDocumentElement()); 

Теперь, в тот же файл XML мне нужно добавить встречное подпись. Не могли бы вы дать мне несколько советов о том, как это сделать? На данный момент у меня нет никаких идей :(

Мой файл XML выглядит следующим образом:

<rootElement> 
    <A> 
    <A1> 
    </A1> 
    </A> 
</rootElement> 

После первой подписи у меня есть:

<rootElement> 
    <A> 
    <A1> 
    </A1> 
    </A> 
    <ds:Signature> 
    </ds:Signature> 
</rootElement> 

С наилучшими пожеланиями Джон С.

ответ

0

Откроется this test в исходном коде библиотеки. Он генерирует подпись, содержащую встречную подпись. В принципе, вам необходимо определить SignaturePropertiesProvider, который добавляет свойство CounterSignature и добавляет его в ваш профиль подписи. Обратите внимание, что CounterSignatureProperty получает другой подписчик, используемый для генерации встречной подписи.

+0

Спасибо. К сожалению, представленный образец показывает, как списать документ вместе с регулярным подписанием. Я уже подписал XML, и я хочу расширить его с помощью метки. Я нашел эту тему: http://stackoverflow.com/questions/14696429/xades-countersign-document, но на самом деле это не объясняет мне, как этого добиться. Я теперь мог быть глупым вопросом, но я начинаю в JAVA и не знаю, как заставить его работать. – user3805907

+0

Вы можете попробовать использовать XadesSignatureFormatExtender напрямую - https://code.google.com/p/xades4j/wiki/SignatureEnrichment – lgoncalves

Смежные вопросы