Refine search
public void writeTo(SOAPMessage saaj) throws SOAPException { SOAPHeader header = saaj.getSOAPHeader(); if(header == null) header = saaj.getSOAPPart().getEnvelope().addHeader(); SOAPHeaderElement she = header.addHeaderElement(new QName(getNamespaceURI(), getLocalPart())); she.addChildElement(actionLocalName); she.addTextNode(action); if (soapAction != null) { she.addChildElement(soapActionLocalName); she.addTextNode(soapAction); } }
getWebServiceTemplate() .marshalSendAndReceive( new JAXBElement<>(new QName(Constants.BROKER_CONNECTION_SERVICE_NAMESPACE_URI, Constants.BROKER_CONNECTION_SERVICE_LOCAL_PART), ConnectionRequestType.class, connectionRequestType), new WebServiceMessageCallback() { @Override public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { SOAPMessage soapMessage = ((SaajSoapMessage) message).getSaajMessage(); SOAPHeader soapHeader = soapMessage.getSOAPHeader(); SOAPHeaderElement actionElement = soapHeader.addHeaderElement(new QName("http://schemas.xmlsoap.org/ws/2004/08/addressing", "Action", "wsa")); actionElement.setMustUnderstand(false); actionElement.setTextContent("ConnectionService"); } });
/** * Determines if the envelope has addressing action header. * * @param soapMessage The SOAPMessage * @return The action addressing header * @throws SOAPException If the envelope could not be read */ public static String getAddressingAction(SOAPMessage soapMessage) throws SOAPException { String action = null; Iterator<SOAPHeaderElement> headers = soapMessage.getSOAPPart().getEnvelope().getHeader().examineAllHeaderElements(); while (headers.hasNext()) { SOAPHeaderElement element = headers.next(); if (element.getElementQName().equals(WSA_ACTION_QNAME)) { action = element.getValue(); break; } } return action; }
public Object[] getHeaders(QName name, JAXBContext context, boolean allRoles) { SOAPMessage msg = getMessage(); SOAPHeader header; try { header = msg.getSOAPPart().getEnvelope().getHeader(); if (header == null || !header.hasChildNodes()) { return new Object[0]; } List<Object> ret = new ArrayList<>(); Iterator<SOAPHeaderElement> it = CastUtils.cast(header.examineAllHeaderElements()); while (it.hasNext()) { SOAPHeaderElement she = it.next(); if ((allRoles || roles.contains(she.getActor())) && name.equals(she.getElementQName())) { ret.add(JAXBUtils.unmarshall(context, she)); } } return ret.toArray(new Object[0]); } catch (SOAPException | JAXBException e) { throw new WebServiceException(e); } }
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(); }
public void writeTo(SOAPMessage saaj) throws SOAPException { SOAPHeader header = saaj.getSOAPHeader(); if(header == null) header = saaj.getSOAPPart().getEnvelope().addHeader(); SOAPHeaderElement she = header.addHeaderElement(name); if(mustUnderstand) { she.setMustUnderstand(true); } she.addTextNode(value); }
SOAPPart sPart = response.getSOAPPart(); javax.xml.soap.SOAPEnvelope env = sPart.getEnvelope(); SOAPBody body = env.getBody(); SOAPHeader header = env.getHeader(); hbIter.next(); final QName hbQName = hb.getQName(); final SOAPHeaderElement headerEle = header.addHeaderElement(env.createName(hbQName .getLocalPart(), hbQName.getPrefix(), hbQName.getNamespaceURI())); for (Iterator attribIter = hb.getAllAttributes(); attribIter.hasNext();) { OMAttribute attr = (OMAttribute)attribIter.next(); final QName attrQName = attr.getQName(); headerEle.addAttribute(env.createName(attrQName.getLocalPart(), attrQName .getPrefix(), attrQName.getNamespaceURI()), attr.getAttributeValue()); headerEle.setActor(role); headerEle.setMustUnderstand(hb.getMustUnderstand());
if (isServerSideHandler()) { if (outbound) { QName qname = new QName("http://cxf.apache.org/mu", "MU"); SOAPPart soapPart = msg.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPHeader header = envelope.getHeader(); if (header == null) { header = envelope.addHeader(); = header.addHeaderElement(envelope.createName("MU", "ns1", qname.getNamespaceURI())); headerElement.addAttribute(name, "1"); } else { getHandlerInfoList(ctx).add(getHandlerId());
SOAPMessage message = MessageFactory.newInstance(); private void buildHeader(String userName, String password) throws SOAPException{ SOAPHeader header = message.getSOAPHeader(); QName authHeader = new QName(SCHEMA, "AuthenticationHeader", SCHEMA_PREFIX); SOAPHeaderElement authElement = header.addHeaderElement(authHeader); QName userNameHeader = new QName(SCHEMA, "UserName", SCHEMA_PREFIX); SOAPElement userElement = authElement.addChildElement((userNameHeader)); userElement.setTextContent(userName); QName passwordHeader = new QName(SCHEMA, "Password", SCHEMA_PREFIX); SOAPElement passwdElement = authElement.addChildElement(passwordHeader); passwdElement.setTextContent(password); }
private void handleOutboundMessage(SOAPMessageContext context) throws SOAPException { SOAPMessage soapMessage = context.getMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope soapEnvelope = soapPart.getEnvelope(); SOAPHeader soapHeader = soapEnvelope.getHeader(); if (null == soapHeader) { soapHeader = soapEnvelope.addHeader(); } Element assertionElement = (Element) context .get(ASSERTION_CONTEXT_ATTRIBUTE); if (null == assertionElement) { return; } SOAPHeaderElement securityHeaderElement = soapHeader .addHeaderElement(new QName( WSTrustConstants.WS_SECURITY_NAMESPACE, "Security", "wsse")); securityHeaderElement.setMustUnderstand(true); securityHeaderElement.appendChild(soapPart.importNode(assertionElement, true)); }
@Override protected void verifyUnderstoodHeader(SOAPHeaderElement element) throws Exception { QName name = new QName(element.getNamespaceURI(), element.getLocalName()); String actor = element.getActor(); Set<String> roles = getRoles(); boolean isActor = actor == null || actor.length() == 0 || Constants.URI_SOAP11_NEXT_ACTOR.equals(actor) || roles.contains(actor); if (isActor && !headerSource.getHeaders().contains(name)) { QName faultCode = Constants.SOAP11_FAULT_CODE_MUST_UNDERSTAND; String faultString = "Unprocessed 'mustUnderstand' header element: " + element.getElementName(); SOAPFaultImpl fault = new SOAPFaultImpl(); fault.setFaultCode(faultCode); fault.setFaultString(faultString); throwFaultException(fault); } } }
public class LogMessageHandler implements SOAPHandler<SOAPMessageContext> { @Override public boolean handleMessage(SOAPMessageContext context){ try { if ((Boolean) context.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)) { SOAPMessage message = context.getMessage(); SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); SOAPHeader header = envelope.getHeader(); if (null == header) header = envelope.addHeader(); QName credential = new QName("http://soap.header.test.com", "Credential"); SOAPHeaderElement headerElement = header.addHeaderElement(credential); QName username = new QName("username"); headerElement.addAttribute(username, "ashok"); QName password = new QName("password"); headerElement.addAttribute(password, "123"); message.writeTo(System.out); return true; } } catch (Exception e) { System.err.println("An error in handler occurs."); } return false; }
public void checkMustUnderstand(OperationMetaData opMetaData) throws Exception { CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext(); assert(msgContext != null); SOAPMessage soapMessage = (SOAPMessage)msgContext.getSOAPMessage(); SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope(); if (soapEnvelope == null || soapEnvelope.getHeader() == null) return; Iterator<?> it = soapEnvelope.getHeader().examineAllHeaderElements(); while (it.hasNext()) { SOAPHeaderElement soapHeaderElement = (SOAPHeaderElement)it.next(); Name name = soapHeaderElement.getElementName(); QName xmlName = new QName(name.getURI(), name.getLocalName()); ParameterMetaData paramMetaData = (opMetaData != null ? opMetaData.getParameter(xmlName) : null); boolean isBoundHeader = (paramMetaData != null && paramMetaData.isInHeader()); if (!isBoundHeader && soapHeaderElement.getMustUnderstand()) verifyUnderstoodHeader(soapHeaderElement); } }
SOAPHeaderElement actionElement = header.addHeaderElement(new QName("http://www.w3.org/2005/08/addressing", "Action")); actionElement.setMustUnderstand(true); String action = (String) messageContext.get("javax.xml.ws.soap.http.soapaction.uri"); actionElement.addTextNode(action); SOAPHeaderElement replyToElement = header.addHeaderElement(new QName("http://www.w3.org/2005/08/addressing", "ReplyTo")); SOAPElement addressElement = replyToElement.addChildElement(new QName("http://schemas.xmlsoap.org/ws/2004/08/addressing","Address")); addressElement.addTextNode("http://www.w3.org/2005/08/addressing/anonymous"); SOAPHeaderElement toElement = header.addHeaderElement(new QName("http://www.w3.org/2005/08/addressing", "To")); toElement.setMustUnderstand(true); String endpoint = (String) messageContext.get("javax.xml.ws.service.endpoint.address"); toElement.addTextNode(endpoint); SOAPHeaderElement messageIdElement = header.addHeaderElement(new QName("http://www.w3.org/2005/08/addressing", "MessageID")); messageIdElement.addTextNode("uuid:" +UUID.randomUUID().toString());
/** * Adds a wsa:RelatesTo SOAP header if the incoming invocation had a * wsa:MessageID SOAP header present - note that OASIS SCA requires that the * RelationshipType attribute is set to a particular SCA value * * @param sh - the SOAP headers * @param msg - the message * @throws SOAPException */ private void addWSARelatesTo(SOAPHeader sh, Message msg) throws SOAPException { // // Note that the 'core' (loosely speaking) part of the invocation chain // will have already copied the forward message msgId to the RELATES_TO header. // String idValue = (String)msg.getHeaders().get(Constants.RELATES_TO); if (idValue != null) { SOAPHeaderElement relatesToH = sh.addHeaderElement(QNAME_WSA_RELATESTO); relatesToH.addAttribute(new QName(null, "RelationshipType"), SCA_CALLBACK_REL); relatesToH.setTextContent(idValue); // OMElement relatesToOM = sh.getOMFactory().createOMElement( // QNAME_WSA_RELATESTO ); // OMAttribute relType = // sh.getOMFactory().createOMAttribute("RelationshipType", null, // SCA_CALLBACK_REL); // relatesToOM.addAttribute( relType ); // relatesToOM.setText( idValue ); // sh.addChild( relatesToOM ); } } // end method addWSARelatesTo
//SOAP Header SOAPHeader header = soapMessage.getSOAPHeader(); SOAPHeaderElement sessionHeader = soapMessage.getSOAPHeader().addHeaderElement(new QName(serverM2M, "SessionHeader","urn")); SOAPElement sessionID = sessionHeader.addChildElement(new QName(serverM2M, "sessionId","urn")); sessionID.addTextNode(termTwo);
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); }
SOAPFactory soapFactory = SOAPFactory.newInstance(); SOAPEnvelope envelope = smc.getMessage().getSOAPPart().getEnvelope(); SOAPHeader header = envelope.addHeader(); SOAPHeaderElement se=header.addHeaderElement(new QName("http://schemas.microsoft.com/ws/2005/05/addressing/none", "Action")); se.addTextNode("some text"); se.addAttribute(soapFactory.createName("S:mustUnderstand"),"1"); //S: or s: depending on xmlns
public void addHeader(SOAPHeader soapHeader, String namespace, SoapHeader header) { try { soapHeader.addHeaderElement(new QName(namespace, header.getKey())).addTextNode(header.getValue()); } catch (SOAPException e) { throw new SoapException(format("Failed to add SOAP header (%s:%s).", header.getKey(), header.getValue()), e); } } }
/** * Take a SOAP header, check if it matches one of our reference * properties/parameters, if so add it to the appropriate collection. * * @param headerElement the header to check * @param refPropQNames List of property names to match to * @return true if it matched, false otherwise */ private boolean checkReferenceP(SOAPHeaderElement headerElement, List<QName> refPropQNames) { Name name = headerElement.getElementName(); QName elementName = new QName(name.getURI(), name.getLocalName()); // if we got to this point, the user wants deserialization of ref props. // if refPropQNames was a null, it is treated as a '*' or process all // headers // otherwise we check to see if the element name was specified by the user if (refPropQNames == null || refPropQNames.contains(elementName)) { this.referenceProperties.add(headerElement); return true; } else { return false; } }