public Node buildSecurityHeader(String username, String password) throws WSSecurityException, ParserConfigurationException, SAXException, IOException{ //XML Document builder with a root node DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource inStream = new InputSource(); inStream.setCharacterStream(new StringReader("<root></root>")); Document document = builder.parse(inStream); //<wsse:UsernameToken> WSSecUsernameToken usernametoken = new WSSecUsernameToken(); usernametoken.setPasswordType(WSConstants.PASSWORD_DIGEST); usernametoken.setUserInfo(username, password); //<wsse:Security> WSSecHeader secHeader = new WSSecHeader(document); secHeader.insertSecurityHeader(); //Generates the Document with <root><Header><wsse:Security>... usernametoken.build(document, secHeader); //Extract the desired node Node securityNode = document.getElementsByTagName("wsse:Security").item(0); return securityNode; }
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));
SOAPPart soappart = message.getSOAPPart(); SOAPEnvelope envelope = soappart.getEnvelope(); SOAPHeader header = envelope.getHeader(); WSSecHeader wsheader = new WSSecHeader(); wsheader.insertSecurityHeader(soappart); WSSecUsernameToken token = new WSSecUsernameToken(); token.setPasswordType(WSConstants.PASSWORD_DIGEST); token.setUserInfo("myuser", "mypass"); token.build(soappart, wsheader);
Document usernameTokenDoc = builder.build(doc, wsSecHeader);//