NB-6.8 jdk-1.6.14 WSS4j-1.5.8,OpenSAML-2.3.0 我嘗試修改WSS4J-1.5.8以運行SAML 2.0,但無法插入所產生的斷言到現有SOAP頭部,這樣的代碼:如何向SOAPHeader插入SAML聲明
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()。 – 2010-03-16 22:21:47
它沒有用。我沒有看到任何元素被添加到文檔,雖然它應該像javadoc說。 – mono 2010-03-17 02:35:07
我最近遇到了類似的問題。在我的情況下,這是因爲缺少一些命名空間。 – JST 2010-04-22 16:34:37