NB-6.8 jdk-1.6.14 WSS4j-1.5.8 ,OpenSAML-2.3.0 WSS4J-1.5.8 を変更して SAML 2.0 を動作させようとしましたが、生成されたアサーションを既存の SOAP ヘッダーに挿入できませんでした。次のようなコードです。 :
Assertion assertion = createAssertion("some subject", "some issuer");
Document doc = docBuilder.parse("request.xml");
Element parent = doc.getDocumentElement();
Node node = parent.getElementsByTagName("soapenv:Header");
node.appendChild(assertion.getDOM());
エラー: WRONG_DOCUMENT_ERR: ノードは、それを作成したドキュメントとは別のドキュメントで使用されています。
しかし、wss4j では、insertSecurityHeader のような一部の関数もそうします (appendChild またはinserBefore)。それらは機能しますが、なぜ私のコードで間違っているのですか? 私が恋しいもの。