Java
XML

【Java】【XML署名】Signatureタグに接頭辞とIDを付与する

JavaのXML署名でSignatureタグの扱いについてメモ。

Signatureタグに接頭辞「dsig」を付与したい場合

createXml.java
// 署名コンテキストの作成
// setDefaultNamespacePrefixでSignatureタグ(子要素もすべて)に接頭辞をつける
DOMSignContext dsc = new DOMSignContext(privateKey, document.getDocumentElement());
dsc.setDefaultNamespacePrefix("dsig");

SignatureタグにIDを付与したい場合

createXml.java
XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");

(中略)

// 署名する.
// newXMLSignatureの第4引数にIDをセット
XMLSignature signature = fac.newXMLSignature(si, ki, null, "a", null);
signature.sign(dsc);

参考サイト(英語)

How to add namespace while signing XML file using javax.xml.crypto.dsig.*?
add attribute to signature xml in java