NB-6.8 jdk-1.6.14 WSS4j-1.5.8, OpenSAML-2.3.0 Я пытаюсь изменить WSS4J-1.5.8 для работы с SAML 2.0, и я не мог вставить генерируемое утверждение к существующему заголовку SOAP, код следующим образом:Как вставить утверждение SAML в SOAPHeader
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) тоже. Они работают, почему это неправильно в моем коде? что я скучаю.
подумайте о своем importNode() в документе владельца, который вы ищете. –
это не работает. Я не вижу, что какой-либо элемент добавлен в doc, хотя он должен быть похож на javadoc. – mono
Недавно я столкнулся с подобной проблемой. В моем случае это было из-за недостающих пространств имен. – JST