//maybe someother service stub,i show you a case CommentWcfServiceLocator locator =new CommentWcfServiceLocator(); WSHttpBinding_ICommentServiceStub stub; try { //get a stub and set service url stub = (WSHttpBinding_ICommentServiceStub) locator.getWSHttpBinding_ICommentService(new java.net.URL("http://www.google.com/CommentWcfService.svc")); // the key is here , importantest!!! follow this // set action, action path,you can find in your java code SOAPHeaderElement action = new SOAPHeaderElement(new QName("wsa:Action"), "http://tempuri.org/ICommentService/GetCommentSummaryByHotelId"); SOAPHeaderElement to = new SOAPHeaderElement(new QName("wsa:To"), stub._getProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY)); action.setActor(null); action.setNamespaceURI("http://www.w3.org/2005/08/addressing"); to.setActor(null); to.setNamespaceURI("http://www.w3.org/2005/08/addressing"); // set header stub.setHeader(action); stub.setHeader(to); // must set this property stub._setProperty(Call.CHECK_MUST_UNDERSTAND, Boolean.FALSE); stub.getCommentSummaryByHotelId("","02201158", 0); } catch(Exception EX){}
void addSecurityHeader(Stub stub, final String username, final String password) { QName headerName = new QName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security"); // Or any other namespace that fits in your case AtomicReference<SOAPHeaderElement> header = new AtomicReference<SOAPHeaderElement> (new SOAPHeaderElement(headerName) { { SOAPElement utElem = addChildElement("UsernameToken"); utElem.addChildElement("Username").setValue(username); utElem.addChildElement("Password").setValue(password); } @Override public void setAttribute(String namespace, String localName, String value) { if (!Constants.ATTR_MUST_UNDERSTAND.equals(localName)) { // Or any other attribute name you'd want to avoid super.setAttribute(namespace, localName, value); } } }); SOAPHeaderElement soapHeaderElement = header.get(); soapHeaderElement.setActor(null); // No intermediate actors are involved. stub.setHeader(soapHeaderElement); // Finally, attach the header to the stub }
try { SOAPHeaderElement sopElement = new SOAPHeaderElement("urn:AuthenticationInfo","AuthenticationInfo") ; sopElement.addChildElement("userName").addTextNode("XXXXX") ; sopElement.addChildElement("password").addTextNode("XXXX"); sopElement.addChildElement("authentication").addTextNode(""); sopElement.addChildElement("locale").addTextNode(""); sopElement.addChildElement("timeZone").addTextNode(""); _call.addHeader(sopElement); } catch (Exception e) { e.printStackTrace(); }
/** * Adds WS-Security header with UsernameToken element to the Axis binding * @param binding * @param wsUser * @param wsPass * @throws SOAPException */ protected static void addWsSecurityHeader(org.apache.axis.client.Stub binding, String wsUser, String wsPass) throws SOAPException { // Create the top-level WS-Security SOAP header XML name. QName headerName = new QName( "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security"); SOAPHeaderElement header = new SOAPHeaderElement(headerName); // no intermediate actors are involved. header.setActor(null); // not important, "wsse" is standard header.setPrefix("wsse"); header.setMustUnderstand(true); // Add the UsernameToken element to the WS-Security header SOAPElement utElem = header.addChildElement("UsernameToken"); SOAPElement userNameElem = utElem.addChildElement("Username"); userNameElem.setValue(wsUser); SOAPElement passwordElem = utElem.addChildElement("Password"); passwordElem.setValue(wsPass); // Finally, attach the header to the binding. binding.setHeader(header); }
void addWsSecurityHeader(org.apache.axis.client.Stub binding, String wsUser,String wsPass)throws SOAPException { // Create the top-level WS-Security SOAP header XML name. QName headerName = new QName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security"); SOAPHeaderElement header = new SOAPHeaderElement(headerName); // no intermediate actors are involved. header.setActor(null); // not important, "wsse" is standard header.setPrefix("wsse"); header.setMustUnderstand(true); // Add the UsernameToken element to the WS-Security header SOAPElement utElem = header.addChildElement("UsernameToken"); SOAPElement userNameElem = utElem.addChildElement("Username"); userNameElem.removeContents(); userNameElem.setValue(wsUser); SOAPElement passwordElem = utElem.addChildElement("Password"); passwordElem.setValue(wsPass); // Finally, attach the header to the binding. binding.setHeader(header); }
SOAPHeaderElement header = new SOAPHeaderElement(qname); String token = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"; header.setMustUnderstand(true);
import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPException; /** * This method is to be used for secure SOAP calls. * Method created as Axis 1.4 strips the security header which compiling the Java classes. * @param username * @param password * @return SOAP Header * @throws SOAPException */ public static SOAPHeaderElement createCustomSOAPHeader(String username, String password) throws SOAPException { SOAPHeaderElement oHeaderElement; SOAPElement oElement; //Header oHeaderElement = new SOAPHeaderElement("http://siebel.com/webservices", "Security"); oHeaderElement.setPrefix("web"); oHeaderElement.setMustUnderstand(false); //Elements for the Header oElement = oHeaderElement.addChildElement("UsernameToken"); oElement.addTextNode(username); oElement = oHeaderElement.addChildElement("PasswordText"); oElement.addTextNode(password); oElement = oHeaderElement.addChildElement("SessionType"); oElement.addTextNode("None"); return oHeaderElement; }