你看不到的web服務安全性相關的標記(即wsse:Security
等),在您的存根因您的存根是您xsd
模式和WSS
豆是有它的特定xsd
定義自己的標籤(標準例如soap
,您可以在<soap:envelope>
內發送您的請求,但這個相關標籤不在您的存根中)。
要將WSS
功能添加到您的Java客戶端,您可以使用apache WSS4J
。爲了增加一個用戶名和密碼,你的問題問,你可以使用下面的代碼做到這一點:
WSSecUsernameToken builder = new WSSecUsernameToken();
builder.setPasswordType(WSConstants.PASSWORD_TEXT);
// set user name an password
builder.setUserInfo("wernerd", "verySecret");
// create a sample soap message
Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
WSSecHeader secHeader = new WSSecHeader(doc);
secHeader.insertSecurityHeader();
// create the soap message with WSS headers
Document signedDoc = builder.build(doc, secHeader);
// simply print the result
System.out.println(XMLUtils.prettyDocumentToString(signedDoc));
這個片斷是從Junit的 apache的WSS4J
項目的測試中提取。您可以在apache WSS4J
svn repository
希望這有助於
感謝@albciff上
UserNameTokenTest
類檢查testUsernameTokenText()
方法。我能夠通過請求處理程序和SOAPMessage傳遞標題和安全性。現在我能夠生成xml請求。 – Venkat 2014-10-08 22:01:41@Venkat完美':)'。 – albciff 2014-10-09 06:26:03